Redirecting WordPress index.php to root Updated: Aug 09, 07 | Redirecting WordPress index.php to root
« Want to know how to really hack?Troubleshooting Apache .htaccess Authentication »
WordPress blogs show the same duplicate content for http://www.askapache.com/index.php and http://www.askapache.com/. If you’ve read about using a robots.txt file for WordPress SEO, than you already understand this setup results in Duplicate Content penalties being levied against your Blog and Web Site by Search Engines.
The fix is a bit of clever .htaccess code utilizing mod_rewrite to only redirect index.php if the request for /index.php came from a client (e.g. browser or web robot), and not if the request is an internal redirect that apache does when / is requested so that it can serve the contents of index.php.
Options +FollowSymLinks
DirectoryIndex index.php
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://www.askapache.com/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
Options +FollowSymLinks
DirectoryIndex index.php
RewriteEngine On
RewriteBase /blog/
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /blog/index\.php\ HTTP/
RewriteRule ^index\.php$ http://www.askapache.com/blog/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
The problem with this is that any request for “/” is internally rewritten to index.php by Apache mod_dir if you have index.php in the DirectoryIndex list (the usual set-up), so it’s difficult to avoid an infinite loop.
« Want to know how to really hack?Troubleshooting Apache .htaccess Authentication »
Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution 3.0 License, which lets you use/modify/re-post this content provided you follow the attribution guidelines in the license.
The power of the Web is in its universality. Access by everyone regardless of disability is an essential aspect. ~Tim Berners-Lee
Apache Software WebRing
Prev | Ring Hub | Join | Next
DCMI | XFN | XOXO 1.0 | hAtom | XDMP | GRDDL | Valid XHTML 1.1 | Valid CSS 2.1
W3C | WAI | © AskApache | License and Disclaimer | Terms of Service
It's very simple -Contact Webmaster | Glossary | Indianapolis, Indiana, U.S.A
you read the protocol
and write the code.
~Bill Joy
Hi,
I am having a problem that you might easily be able to fix (I can’t as I don’t know much about Apache) because it is related to this post, if you could read my problem at
http://wordpress.org/support/topic/153081?replies=5#post-681054
that would be appreciated. Thanks.
Hello im trying and trying something but i cant!
First i need to say that i have a rule on .htaccess on my root folder with the code:
Options +FollowSymlinks RewriteEngine on rewritecond %{http_host} http://www.mysite.com.ar [nc] rewriterule ^(.*)$ http://mysite.com.ar/1 [r=301,nc]I say it because maybe it modify the new thing im trying to do.
I need a redirect from:
mysite.com.ar/forum/ --> mysite.com.ar/forum/index.phpIs this possible?
Thanks in advance
See also: http://markjaquith.wordpress.com/2007/09/25/wordpress-23-canonical-urls/
This code works like a charm. ONE PROBLEM: Now my 404 pages don’t seem to work. If I go to my root and type a page that doesn’t exist, sdfsdfwe.php, the browser acts like that page exists and serves my index instead.
Is there a way to keep my 404 working?