在IIS上的Drupal干净的URL

任何想法如何启用干净的url在Drupal服务器是IIS?

快速谷歌search返回本指南, 在IIS上的Drupal Clean URL 。 这有帮助吗?

经过一些痛苦,我伟大的托pipepipe理员,我设法得到离子ISAPI重写filter(IIRF)2.0.1.1013 RELEASE工作在IIS v6.0。 我以为我会张贴我们如何得到它的工作; 希望我们的解决scheme能帮助你!

在我开始之前,我曾在不同types的服务器上工作,所以我在现有的Drupalconfiguration中遇到了一些麻烦。 所以,如果您已经在其他地方设置了该网站,请确保转移到新服务器之前执行以下操作:

  1. 在Drupal的Admin – > Site Configuration – > Clean URLs中禁用干净的URL
  2. 如果启用了Global Redirect模块,请确保在Admin – > Site Configuration – > Global Redirect中将“Non-clean to Clean”选项设置为“Off”

以下是我们采取的步骤:

  1. 下载的Ionic ISAPI重写filter2.0.1.1013 RELEASE和解压缩文件
  2. 遵循指南中的说明。 该指南包含在AdminGuide>帮助> IirfGuide.chm的ZIP文件中。 我们使用了本文末尾引用的IirfGlobal.ini文件。
  3. 重新启动IIS
  4. 在网站的根文件夹中创build一个Iirf.ini文件,只inputStatusUrl /iirsStatus RemoteOk 。 然后,我们通过http://mysite.example.com/iirsStatus来testingIIRS是否正在工作。 它应该为你打印一些状态行。
  5. 将Iirf.ini文件更改为最终forms,如本文末尾引用的那样
  6. 再次打开干净的URL。 尽pipe不要打开Global Redirect的“非干净清理”选项! 它会无休止地redirect页面。

IirfGlobal.ini:

 RewriteEngine ON RewriteFilterPriority DEFAULT NotifyLog OFF 

Iirf.ini:

 # Do not pass to drupal if the file or directory exists RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] # Handle query strings on the end RewriteRule /(.*)\?(.*)$ /index.php\?q=$1&$2 [I,L] # now pass through to the generic handler RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^/(.*)$ /index.php?q=$1 [I,L] 

Drupal网站上有一些关于在我目前使用的II6中使用干净URL的文档。 看看http://drupal.org/node/3854

简短的答案是从http://www.isapirewrite.com/下载ISAPI Rewrite 2 lite。 精简版版本只允许您为整个IISconfigurationconfiguration一组重写规则,但运行良好且免费。

付费版本允许您指定为在IIS中configuration的每个站点重写规则,但需要IIS的更多configuration。

我正在使用的ISAPI规则是:

 #Helicon ISAPI_Rewriteconfiguration文件
 #版本3.1.0.62

 RewriteEngine On
 RewriteCond%{REQUEST_FILENAME}!-f
 RewriteCond%{REQUEST_FILENAME}!-d
 RewriteCond%{REQUEST_URI}!= / favicon.ico
 RewriteRule ^(。*)$ /index.php?q=$1 [L,QSA]

如果你的Drupal安装被安装在一个子目录下,你会想要调整这些规则。

我已经用了一段时间的离子重写…它是免费的,很好用

http://www.codeplex.com/IIRF

我设法通过安装URL重写器模块并使用以下代码在基本目录中创build一个web.config文件来实现:

 <?xml version="1.0" encoding="UTF-8"?> <configuration> <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> </configuration> 

在这篇文章中还有更多的信息:“你还需要安装一个修补程序来纠正在通过FastCGI模块使用PHP时的REQUEST_URI行为,更多的信息请参见KB954946这个问题的一个症状是当所有表单提交被redirect到网站的首页“。

IIRF是一个免费的URL重写器,在IIS上工作,并与Drupal合作。