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.
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.
Post new comment