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
/article.html%23comment-155
to
/article.html#comment-155
The Solution
RewriteRule ^(.*).html([^c]+)comment-(.+)$ http://www.site.com/$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 "-"
Result
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 http://www.webmasterworld.com/forum92/5188.htm
%23 mod_rewrite rewriterule rewritecond htaccess seo sitemap google
Related Articles
- 301 Redirect with mod_rewrite or RedirectMatch
- Rewrite underscores to hyphens for SEO URL
- SEO Redirects without mod_rewrite
- mod_rewrite Fix for Caching Updated Files
- htaccess HTTPS / SSL Tips, Tricks, and Hacks
- Smart HTTP and HTTPS RewriteRule Redirects
- .htaccess mod_rewrite rewrite examples
- Redirect index.php to root “/”