Forum Moderators: phranque
RewriteEngine On
Options +FollowSymlinks
RewriteCond %{HTTP_HOST} ^(www.)?mydomain.com$
RewriteRule ^(.*)$ /subfolder/$1 [L] RewriteCond %{THE_REQUEST} ^GET\ /subfolder/
RewriteRule ^subfolder/(.*) /$1 [L,R=301]
RewriteRule !^subfolder/ subfolder%{REQUEST_URI} [L]
RewriteRule ^subfolder2$ http://www.example.com/subfolder2/ [R=301,L]
#
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /subfolder(/[^\ ]*)?\ HTTP/
RewriteRule ^subfolder(/(.*))?$ http://www.example.com/$2 [R=301,L]
#
RewriteCond $1 !^(subfolder|subfolder2|subfolder3)(/.*)$
RewriteRule ^(.*)$ subfolder/$1 [L]
RewriteCond $1 !^(subfolder|subfolder2|subfolder3)(/.*)$
RewriteRule ^(.*)$ subfolder/$1 [L] RewriteCond %{THE_REQUEST} ^[A-Z]+\ /subfolder(/[^\ ]*)?\ HTTP/
RewriteRule ^subfolder(/(.*))?$ http://www.mydomain.com/$2 [R=301,L] RewriteOptions inherit RewriteCond %{THE_REQUEST} ^[A-Z]+\ /subfolder(/[^\ ]*)?\ HTTP/
RewriteRule ^subfolder(/(.*))?$ http://www.mydomain.com/$2 [R=301,L] RewriteCond $1 !^(subfolder|subfolder2|subfolder3)(/.*)$
RewriteRule ^(.*)$ subfolder/$1 [L] mydomain.com/subfolder has an .htaccess (we'll call it the sub htaccess) that takes precedence on the root directory htaccess (let's call it the main htaccess);
For each request to your server, all rules in all .htaccess files in the path to the requested resource will be executed. And they will be executed repeatedly, until no more rules match. Therefore, specific exclusions are often needed.
mydomain.com/subfolder has an .htaccess (we'll call it the sub htaccess) that takes precedence on the root directory htaccess (let's call it the main htaccess); since the sub .htaccess inherits from the rules of the main htaccess, i.e :
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /subfolder(/[^\ ]*)?\ HTTP/
RewriteRule ^subfolder(/(.*))?$ http://www.mydomain.com/$2 [R=301,L]
here we are redirected to www.mydomain.com/
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /subfolder(/[^\ ]*)?\ HTTP/
RewriteRule ^subfolder(/(.*))?$ http://www.mydomain.com/$2 [R=301,L]
RewriteCond $1 !^(subfolder|subfolder2|subfolder3)(/.*)$
RewriteRule ^(.*)$ subfolder/$1 [L]
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /subfolder(/[^\ ]*)?\ HTTP/
RewriteRule ^subfolder(/(.*))?$ /$2 [R=301,L]