« 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 »
The love of liberty is the love of others; the love of power is the love of ourselves.
-- William Hazlitt
The power of the Web is in its universality. Access by everyone regardless of disability is an essential aspect. Tim Berners-Lee
[...] These .htaccess lines above basically send browsers and searchbots to index.php of your WordPress install. AskApache has a good explanation for those interested in further .htaccess information. [...]
I used this code and fixed the problem with seeing the index.php in the URL.
So my question is about how Google sees these links. There may be people
linking to any combination of these links:
http://www.domain.com/index.html http://www.domain.com/ http://www.domain.com http://www.domain.com/index.php
With your script, does that mean that everyone redirects to http://www.domain.com/
and does that help with having all backlinks go to one URL? I’ve heard that having the
4 – can dilute the backlinks.
Thanks!
I am trying to re-direct index.php. and still be able to use my client login features (plugin on home page) on Joomla. Successful to get all redirects except that now my client login plugin does not work when I redirected the index.php. Tried using the … RewriteRule . /index.php [L] … but same problem. So for now it’s back to the site without index.php redirect until I can find an answer. Apache .htaccess code for this or not? I have searched and searched for an answer – still looking. Anyone?
~~Brian
@ Andrewsha
Firstly, I’m not criticising, I’m simply confused: what works like a charm?
I had thought that the original solution would answer your question “But how to rewrite mysite.com/index.php to mysite.com?”
My question is also how to simple re-write, NOT re-direct, from www.mysite.com/index.php to simple www.mysite.com.
Can anyone help us?
hey i am having the same problem as Dave
Regards
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?
Tags: 301 Redirect, Apache, askapache, Htaccess, htaccess rewrite, Logs, Mod_Rewrite, PHP, Redirect, Rewrite Tricks, rewritecond, rewriterule, Robot, robots, robots.txt, SEO, server, server config, SSI, SymLinks, trick, WordPress,
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
Except 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. NCSA HTTPd.
UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
I want to redirect browse folder into the root
index.phpthrough.htaccessis that possible?example:
the request url is =
http://www.site.com/foldernamethis request has to be not to browse the folder, but back into
http://www.site.com/index.phpand will be process there.. as information the folder with the foldername is exist on the server that cause when requesting is browse the folder..thanks