Ask your WordPress questions! Pay money and get answers fast! Comodo Trusted Site Seal
Official PayPal Seal

Remove index.php from permalink WordPress

My permalink structure is:

http://www.mysite.com/index.php/post-title

I moved the installation to a Linux server and I want to remove the 'index.php' from permalink.

If I make this change, Google will think there is a broken page (former URL), and a duplicate page on my site (new url): it may penalise both URLs (pages), and my page severely drops in ranking on Google: well at least for a while until Google decides drop the old page from its index.

How can I make this change and prevent this from happening?

How can I make the redirect from old URL to new URL?

Thanks!

Answers (7)

2011-12-02

Julio Potier answers:

Hello

You can use this plugin : [[LINK href="http://wordpress.org/extend/plugins/permalinks-migration-plugin-for-wordpress/"]][[/LINK]]

Your new permalink won't be duplicated, it acts like 301 redirections, not "another page like the other one"

See you !

2011-12-02

Luis Cordova answers:

what plugin?

lol

no you just need to make your index.php change a bit or your .htaccess

that is it

2011-12-02

Sébastien | French WordpressDesigner answers:

Julio, ton lien est pas passé.

Like Luis : you can add a simple line in your htaccess to make a redirection


Sébastien | French WordpressDesigner comments:

your permalink structure is what ?
Could you look at that here :
http://<strong>YOUR-SITE-INTERNET.COM</strong>/wp-admin/options-permalink.php

2011-12-02

Bogdan answers:

You have an .htaccess file? You are using wordpress? If you don`t have a file named .htacces, make one (give the permissions 777) and add this code:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

P.S: Before, download the .htaccess file to your computer to have a backup in case that something goes wrong.


LE: Don`t forget to modifiy your Permalinks in case that you user Wordpress.


LE 2: Or try this:

RewriteCond %{THE_REQUEST} \/index.php\ HTTP [NC]
RewriteRule (.*)index.php$ /$1 [R=301,L]

LE 3: After that,use this plugin: http://urbangiraffe.com/plugins/redirection/


Bogdan comments:

So... you solve the problem or what?

2011-12-02

Jerson Baguio answers:

try to use this plugin : http://wordpress.org/extend/plugins/redirection/

2011-12-02

Ivaylo Draganov answers:

Hello,

you shouldn't worry about that, because to WordPress <em>http://example.com/index.php/post-title</em> and <em>http://example.com/post-title</em> are the same. I mean, if you enable the pretty permalinks(without index.php) on your new server, then the old "almost pretty" ones (with index.php) will be automatically internally redirected by WordPress.

Try it. Change your permalink structure* and then visit one of the old URLs. You'll notice how it redirects.

* the permalink structures (without the index.php part) must match

2011-12-03

Francisco Javier Carazo Gil answers:

Hi Rodrigo,

Apart from:
* htaccess
* redirection plugin
* new permalink structure

You may have to notify Google via Google Webmaster Tools: https://www.google.com/webmasters/tools

If you are using a Sitemap (try this: http://wordpress.org/extend/plugins/google-sitemap-generator/) you will have to delete it and make a new one.