mod_ReWrite to remove part of a URL
Someone has incorrectly linked to some of my urls causing 404 erros in Google Webmaster Tools.
Here is an example
Linked URL: http://www.example.com/foo-%E2%80%8Bbar.html
Correct URL: http://www.example.com/foor-bar.html
I would like to 301 redirect any instance of this kind of incorrect linking to the correct URL. I have tried the following but it generates 404 Errors site wide.
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^foo-(.*)bar\.html$ http://www.example.com/foo-bar\.html? [L,R=301]
Could anyone let me know what I am doing wrong?
Well, for starters, the regex
foo-(.*)bar\.html
will also match "foo-bar.html", which is not good and causes a rewrite loop.
You want this instead:
foo-(.+)bar\.html
And in general, the rewriterule should be:
RewriteRule ^/foo-(.+)bar\.html$ /foo-bar.html? [L,R=301]