Replacing %23 with # in incoming links

I had some url requests show up in my google sitemaps for one of my sites with "404 Not found" errors for a bunch of urls that had "%23comment-155" looking urls instead of "#comment-155"

The Urlencode RewriteRule Goal

So I had to redirect incoming links that contained



The Solution

RewriteRule ^(.*).html([^c]+)comment-(.+)$$1.html#comment-$3 [R=301,L,NE]

Requests from apache log files

"GET /htaccess/speed-up-sites-with-htaccess-caching.html%23comment-155 HTTP/1.1" 200 2617 "-"

After the fix

"GET /htaccess/speed-up-sites-with-htaccess-caching.html%23comment-155 HTTP/1.1" 301 683 "-"
"GET /htaccess/speed-up-sites-with-htaccess-caching.html HTTP/1.1" 200 24690 "-"


Users browser is redirected using a Search Engine Friendly 301 Redirect to the correct URL, including anchor!

More Info

For more discussion of this problem check out