I am trying to do a redirect of a file and folder using .htaccess
. I want to add a RewriteCond
directive before the RewriteRule
to match only example.com/place/sta-ana.html
and example.com/place/sta-ana
directory. I tried this:
RewriteCond %{REQUEST_URI} ^place/sta-ana(\.html|/.*)?
RewriteRule ^place/sta-ana(\.html|/.*)? /place/santa-ana$1 [L,NC,R=301]
and this:
RewriteCond %{THE_REQUEST} ^place/sta-ana(\.html|/.*)?
RewriteRule ^place/sta-ana(\.html|/.*)? /place/santa-ana$1 [L,NC,R=301]
but both only work for redirecting place/sta-ana.html
and not the directory and its files like place/sta-ana/santiago.html
and place/sta-ana/santiago/lourdes.html
. How can I get the code(s) above to also redirect the sta-ana
directory to the santa-ana
folder:
example.com/place/sta-ana.html => example.com/place/santa-ana.html
example.com/place/sta-ana/santiago.html => example.com/place/santa-ana/santiago.html
example.com/place/sta-ana/santiago/lourdes.html => example.com/place/santa-ana/santiago/lourdes.html
CodePudding user response:
Looks like you don't need a RewriteCond
. Just this rule will do the job:
RewriteRule ^place/sta-ana(\.html|/.*)$ /place/santa-ana$1 [L,NC,R=301,NE]
Make sure this is your topmost rule and you must clear your browser cache completely before testing this change.