What is the best method to rewrite anything below \"/some/subdir\" to \"/some/subdir/projects\" like from this:
http://www.mydomain.com/some/subidr/test/
Try this rule in your .htaccess configuration file in the document root of your server:
RewriteEngine on
RewriteRule !^some/subdir/projects(/|$) some/subdir/projects%{REQUEST_URI} [L]
As you want to use this rule in your /some/subdir/
directory, change the rule as follows:
RewriteRule !^projects(/|$) projects%{REQUEST_URI} [L]
And if you want to redirect any requests of /some/subdir/projects/
foobar
to /some/subdir/
foobar
, put this rule above the previous mentioned:
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /some/subdir/projects[/?\s]
RewriteRule ^some/subdir/projects/?([^/].+)?$ /some/subdir/$1 [L,R=301]
This is the solution I finally got to work:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/some/subdir/projects/.*$
RewriteRule ^(.*)$ /some/subdir/projects/$1 [L]
I would use this:
RewriteEngine On
RewriteRule ^(/some/subdir)/(.*)$ $1/projects/$2
This will redirect /some/subdir/<anything>
to /some/subdir/projects/<anything>
.
Note that the leading /
is actually required to match the beginning of the URL, unless you have RewriteBase /
set somewhere.