I had a problem and after some research I discovered the exactly point where is failing.


Is not working, it says that the page cannot be found (404)


Working as expected

If you click on Home, it will says that the page cannot be found, if you try to preview a new post, it says that the page cannot be found... I can see every post btw.

I run my blog on a Windows hosting using IIS.

my permalink is this:


IIRC I had to use index.php because my IIS doesn't have URL rewriting.

I have no problem with the index.php thing on the url, I have now a good SEO and I don't want to change my permalink but I Don't know why is not working now... just from one day to the next...

It's a problem of WP or is just my host messing up? If is my blog, do you know what is causing this? (Just for create a concrete ticket about the exactly problem)

Thank you.

3 Answers 3


Hve you seen this?: Using Permalinks without mod rewrite « WordPress Codex

And using only %postname% in permalinks is a well known problem with Wordpress; it's best to use at least %postname%/%year% But WP won't throw 404's if you change permalinks; they will be forwarded.

From the link above:

If you are using IIS 7 and have admin rights on your server, you can use Microsoft's URL Rewrite Module http://www.iis.net/learn/extensions/url-rewrite-module/using-the-url-rewrite-module instead. Though not completely compatible with mod_rewrite, it does support WordPress's pretty permalinks. Once installed, open the web.config file in the WordPress folder and add the following rule to the system.webServer element

<?xml version="1.0" encoding="UTF-8"?>
<rule name="WordPress Rule" stopProcessing="true">
<match url=".*" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<action type="Rewrite" url="index.php?page_id={R:0}" />

See http://www.iis.net/learn/extensions/url-rewrite-module/enabling-pretty-permalinks-in-wordpress


With permalinks settings of /%postname%/ all the posts pages were showing correctly with proper post name in url as preferred for SEO. However, my home page blogs.halloweencostumesale.com was not showing up and giving 404 page not found error. I am hosting on a Windows Server.

After researching for days on several forums I had no solution. If I gave blogs.halloweencostumesale.com/index.php the home page would show up but it would not show up with just blogs.halloweencostumesale.com.

In the IIS settings for default documents allowed for the domain, I had Index.php whereas my actual file was index.php. Appache server is case sensitive and that was the problem. I changed to index.php i.e. all lowercase in the default documents allowed for the domain and everything worked good finally.


I am most familiar with Apache, but I'll attempt to take logic there and apply it to IIS. There is a configuration option that determines what the index page is. That is, when you hit domain.com/ you will actually get domain.com/index.html. In IIS, I believe the setting you are looking for is called the "default document". You need to add index.php to the default documents list.

If you can not change the configuration, you could cheat by adding an index.html that redirects to index.php

  • Thanks, but that is not the problem, If I change my index.php for another one it works perfectly Aug 2, 2010 at 8:53

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .