views:

58

answers:

3

Need help with an 301 htaccess redirect rule doing the following:

www.name.com/wordA/wordB/* to www.name.com/WordNEW/wordA/wordB/*

we are basically adding "WordNew".

I have three wordA and five wordB for a total of 15 path variations.

A: 

if WordNEW is in a constant position my quick and dirty solution would be to split the url string on '/'. at index 1 I would prepend the string WordNEW/ . For a more feasible solution I will need a few moments to think.

Woot4Moo
+1  A: 

Spin this on for size:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/WordNEW [NC]
RewriteRule ^(.*)$ /WordNEW/$1 [L,R=301]

Broken down

RewriteCond %{REQUEST_URI} !^/WordNEW [NC]

Check the requested URI does not start (!^) with the same folder path (/WordNEW) as the final. If it does, you've already redirected once or you are already there. If you don't check then you can end up on a loop rewriting the path over and over again.

RewriteRule ^(.*)$ /WordNEW/$1 [L,R=301]

If it passes, grab the whole requested URI (^(.*)$) and prepend with the new folder path (/WordNEW/$1). Then flag this as the last rule (L) in the RewriteRule while redirecting under 301 (R=301).

random
A: 

Here’s a simpler rule:

RewriteRule !^WordNEW/ /WordNEW%{REQUEST_URI} [L,R=301]
Gumbo