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.