« 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.
A common request is to be able to remove or redirect the index.php from appearing in the url. This is possible only with server-side technology like .htaccess configuration files or your main server config by using the Mod_Rewrite Rewrite Module.
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 »
Tags: htaccess, htaccess rewrite, mod_rewrite, rewriterule
Please consider donating to support active development of the free software and articles here.![]()
The power of the Web is in its universality. Access by everyone regardless of disability is an essential aspect. Tim Berners-Lee
Hello!
Working as a charm!
But how to rewrite mysite.com/index.php to mysite.com ?
Thanks for posting this. I’ve been looking for this a long time.
However, I’m having one problem : Any random, non-existing directory-url, like site.com/something/ is giving a 200 Found response code now. And it’s loading the index page.
A copy of my .htaccess file can be found here.
I’d be grateful for any advice.
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} 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.php
Is this possible?
Thanks in advance
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?
It's very simple - you read the protocol and write the code. -Bill Joy
HTML | DCMI | GRDDL | XOXO | XDMP | XFN | DOM | XML | XHTML 1.1 Strict | CSS 2.1 | W3C | TLDP | WAI | DISA | ICSI | GIAC | SANS RR | GHOST | DEFCON | NIST | DHS CYBER | NIST | .:: Phrack Magazine ::.
↑ TOPExcept where otherwise noted, content on this site is licensed under a Creative Commons Attribution 3.0 License, just credit with a link.
This site is not supported or endorsed by The Apache Software Foundation (ASF). All software and documentation produced by The ASF is licensed. "Apache" is a trademark of The ASF. HTTPD based on NCSA HTTPd
hey i am having the same problem as Dave
Regards