Drupal clean URLs on IIS 7
Heine — Thu, 16/10/2008 - 09:57
To get Clean URLs working on IIS 7, install the new URL rewriter module (x86, x64) and add the following to the system.webServer section of the sites' web.config:
<rewrite>
<rules>
<rule name="Drupal clean URLs" enabled="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_URI}" negate="true" pattern="/favicon.ico$" />
</conditions>
<action type="Rewrite" url="index.php?q={R:1}" appendQueryString="true" />
</rule>
</rules>
</rewrite>
<rules>
<rule name="Drupal clean URLs" enabled="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_URI}" negate="true" pattern="/favicon.ico$" />
</conditions>
<action type="Rewrite" url="index.php?q={R:1}" appendQueryString="true" />
</rule>
</rules>
</rewrite>
You also need to install a hotfix to correct REQUEST_URI behaviour when using PHP via the FastCGI module. See KB954946 for more information. A symptom of this problem is when all form submissions get redirected to the frontpage of the site.
Update: You may want to look into the Microsoft Web Platform, which contains an installer for Acquia Drupal.
- Login to post comments
Awesome help! However, where do I add that code to.
Cheatah (not verified) — Fri, 27/03/2009 - 17:48Where do I add the code? Do I need to create a web.config file in the directory?
Nevermind Figured it out.
Cheatah (not verified) — Fri, 27/03/2009 - 17:52You can just create a web.config from scratch and put the following info:
<?xml version="1.0" encoding="utf-8" ?>
Configuration tag
Heine — Thu, 21/05/2009 - 09:14If you later try to configure your site, IIS complains loudly when there's no configuration tag. Use the following template to prevent this.
<configuration>
<system.webServer>
</system.webServer>
</configuration>
The rewrite block then goes inside the
system.webServersection.wha.. where?
n00b (not verified) — Thu, 13/08/2009 - 05:10for clarification...
The web.config file sits in the site's root directory?
The initial web.config file
n00b (not verified) — Thu, 13/08/2009 - 05:13Google be my guide.
And a good guide it is
Heine — Thu, 13/08/2009 - 13:30And a good guide it is :)
Thanks for posting back.
I don't know if that was
ThomasR (not verified) — Thu, 08/04/2010 - 16:10I don't know if that was already the case before, but you just need to install the rewrite module and import the Drupal .htaccess file...
That did not work in 2008
Heine — Sun, 11/04/2010 - 15:53That did not work in 2008 :)
Glad to hear it has improved.
Perfect!! =)
Otto (not verified) — Sat, 10/07/2010 - 16:43Thank you! The tags you mentioned above worked perfectly on my Windows Server 2008 64bits Drupal installation.