• Hello! I’m looking for help to sort out an htaccess question. I’m running wp on a subdirectory (public_html/wp) with permalinks and buddypress, but on my public_html root, there’s another application (MODx) running, also with permalinks and its own htaccess rules. The rules from the top directory are overriding wp’s, linking wp links to the top directory documents…

    I assume you can set separate rewrite rules to specific directories and that would solve the problem.

    This is the top htaccess

    #php_value memory_limit 256M
    
    # MODx supports Friendly URLs via this .htaccess file. You must serve web
    # pages via Apache with mod_rewrite to use this functionality, and you must
    # change the file name from ht.access to .htaccess.
    #
    # Make sure RewriteBase points to the directory where you installed MODx.
    # E.g., "/modx" if your installation is in a "modx" subdirectory. If you have
    # problems with your .htaccess working at all, try un-commenting the first
    # line above the "RewriteEngine On" directive.
    #
    # You may choose to make your URLs non-case-sensitive by adding a NC directive
    # to your rule: RewriteRule ^(.*)$ index.php?q=$1 [L,QSA,NC]
    
    Options +FollowSymlinks
    RewriteEngine On
    RewriteBase /
    
    # Rewrite www.domain.com -> domain.com -- used with SEO Strict URLs plugin
    RewriteCond %{HTTP_HOST} .
    RewriteCond %{HTTP_HOST} !^agiliumworldwide\.com [NC]
    RewriteRule (.*) https://agiliumworldwide.com/$1 [R=301,L]
    #
    # or for the opposite domain.com -> www.domain.com use the following
    # >>> DO NOT USE BOTH THE ABOVE AND BELOW <<<
    #
    #RewriteCond %{HTTP_HOST} .
    #RewriteCond %{HTTP_HOST} !^www\.example-domain-please-change\.com [NC]
    #RewriteRule (.*) https://www.example-domain-please-change.com/$1 [R=301,L]
    
    # Rewrite secure requests properly to prevent SSL cert warnings, e.g. prevent
    # https://www.domain.com when your cert only allows https://secure.domain.com
    #RewriteCond %{SERVER_PORT} !^443
    #RewriteRule (.*) https://example-domain-please-change.com.com/$1 [R=301,L]
    
    # The Friendly URLs part
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
    
    # Make sure .htc files are served with the proper MIME type, which is critical # for XP SP2. Un-comment if your host allows htaccess MIME type overrides.
    
    #AddType text/x-component .htc
    
    # If your server is not already configured as such, the following directive
    # should be uncommented in order to set PHP's register_globals option to OFF.
    # This closes a major security hole that is abused by most XSS (cross-site
    # scripting) attacks. For more information: https://php.net/register_globals
    #
    # To verify that this option has been set to OFF, open the Manager and choose
    # Reports -> System Info and then click the phpinfo() link. Do a Find on Page
    # for "register_globals". The Local Value should be OFF. If the Master Value
    # is OFF then you do not need this directive here.
    #
    # IF REGISTER_GLOBALS DIRECTIVE CAUSES 500 INTERNAL SERVER ERRORS :
    #
    # Your server does not allow PHP directives to be set via .htaccess. In that
    # case you must make this change in your php.ini file instead. If you are
    # using a commercial web host, contact the administrators for assistance in
    # doing this. Not all servers allow local php.ini files, and they should
    # include all PHP configurations (not just this one), or you will effectively
    # reset everything to PHP defaults. Consult www.php.net for more detailed
    # information about setting PHP directives.
    
    ##php_flag register_globals Off
    
    # For servers that support output compression, you should pick up a bit of
    # speed but un-commenting the following lines.
    
    ##php_flag zlib.output_compression On
    ##php_value zlib.output_compression_level 5
    
    # The following directives stop screen flicker in IE on CSS rollovers. If
    # needed, un-comment the following rules. When they're in place, you may have
    # to do a force-refresh in order to see changes in your designs.
    
    #ExpiresActive On
    #ExpiresByType image/gif A2592000
    #ExpiresByType image/jpeg A2592000
    #ExpiresByType image/png A2592000
    #BrowserMatch "MSIE" brokenvary=1
    #BrowserMatch "Mozilla/4.[0-9]{2}" brokenvary=1
    #BrowserMatch "Opera" !brokenvary
    #SetEnvIf brokenvary 1 force-no-vary

    And this is the standard wp permalinks rules

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    
    # END WordPress

Viewing 3 replies - 1 through 3 (of 3 total)
  • I assume you can set separate rewrite rules to specific directories and that would solve the problem.

    I have Add-On Domains as well as sub-domains, and I know the sub-domains need RewriteBase /wp/ in their own otherwise-standard .htaccess.

    What I’m finding is that if I set the “RewriteBase /” to “RewriteBase /wp/” that it only works one time, then WP resets the .htaccess file back to “RewriteBase /”

    I’ve changed the permalinks several different ways and it continues to do that. If I leave the permalinks set to “default”, it works, but of course shows “/wp/?page_id=4” in the address bar.

    I would be suspicious of a plugin or cache before thinking WordPress is doing the re-writing. To test that theory, temporarily remove the # BEGIN WordPress and # END WordPress lines or put something else in place of ‘WordPress’ and then see whether WordPress adds them back as it would with new code.

    I keep my .htaccess permissions at 0404 so only I can ever write to that file, and that might be a way to keep what you want while also watching for complaints from somewhere.

    https://wordpress.stackexchange.com/questions/185638/how-to-stop-wordpress-from-changing-default-htaccess-permissions-to-444

Viewing 3 replies - 1 through 3 (of 3 total)
  • The topic ‘wordpress on subdirectory, htaccess messup’ is closed to new replies.