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

Wordpress added /index.php/ when i migrated to new server WordPress


I migrated a site (WP files and DB) from my DEV server to the client's server. When I checked the permalinks screen it had appended my common settings with index.php. In fact i had to also append the custom structure with index.php as well to get it to work properly. Has anyone seen this before? Does it have something to do with the server I ported to?

See for yo' self: or check out the attachment!

Rich Staats

Answers (6)


Milan Petrovic answers:

Just remove index.php from permalink structure and resave, it should fix the issue. This happens from time to time, and I have seen it few times before, and resaving without it solves the problem. If the problem is not solved, than you might have configuration problem with mod_rewrite on server. In that case revert to no permalinks, remove all rewrite code from htaccess, and than set proper permalinks.

WP must be able to add rewrite code to htaccess, so it has to be writable.


Oleg Butuzov answers:

check root folder for writing permitions. if root folder (where is generated htaccess writes) not aviable for writings its add index.php to the permanent urls.

one more posible reason that server isn't apache (on my nginx server urls enerated also with index.php )

you can check is folder writabe
remove index php from custom permamnet link structure (yeah you should click custom and remove index.php)
and press save...


Roberto Mas answers:

Check the .htaccess file in the root folder


Rashad Aliyev answers:

Dear Rich Staats, make your home permission (chmood 755 ) and add after that add .htaccess file to manually to your put.

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

# END WordPress


Monster Coder answers:

put this in the <strong>Custom Structure</strong> field.

that should solve your problem if you are using Apache.


Navjot Singh answers:

Is your client hosted on a Windows based server? If yes then open the web.config file in the WordPress folder and add the following rule to the system.webServer element

<rule name="Main Rule" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<action type="Rewrite" url="index.php/{R:0}" />