Tutorial :.htaccess URL Rewrite to Subdirectory



Question:

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/  

... to this:

http://www.mydomain.com/some/subdir/projects/test/  

I found a similar question posted, but the solution didn't seem to work in my case. My current attempt so far (which doesn't seem to work):

Options +FollowSymLinks  RewriteEngine On    RewriteCond %{REQUEST_URI} !^/projects/.*$  RewriteRule ^(.*)$ /projects/$1 [L]  

EDIT: I forgot to mention the .htaccess file would have to be sitting within /some/subdir as I don't have write access to the server's web root.


Solution:1

This is the solution I finally got to work:

RewriteEngine On    RewriteCond %{REQUEST_URI} !^/some/subdir/projects/.*$  RewriteRule ^(.*)$ /some/subdir/projects/$1 [L]  


Solution:2

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]  


Solution:3

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.


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »