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 Redirect Fix
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.
.htaccess mod_rewrite code
askapache.com/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]
askapache.com/blog/index.php
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]
More Info
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.
redirect wordpress blog index index-php REQUEST rewriterule rewrite
Related Articles

09.14.07 at 12:04 pm
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?
10.04.07 at 10:37 pm
See also: http://markjaquith.wordpress.com/2007/09/25/wordpress-23-canonical-urls/
11.07.07 at 5:30 pm
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
01.23.08 at 12:19 am
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.