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 Clean URL's on IIS。这有帮助吗?
经过一番痛苦之后,我和我伟大的托管管理员设法让 Ionic ISAPI 重写过滤器 (IIRF) 2.0.1.1013 RELEASE 在 IIS v6.0 上运行。我想我会发布我们如何让它工作的;希望我们的解决方案对您有所帮助!
在我开始之前,我的站点在不同类型的服务器上工作,所以我在现有的 Drupal 配置上遇到了一些问题。因此,如果您已经在其他地方设置了站点,请确保在移动到新服务器之前执行以下操作:
Global Redirect
打开了该模块,请确保在管理员 -> 站点配置 -> 全局重定向中将“非清洁到清洁”选项设置为“关闭”以下是我们为使其正常工作而采取的步骤:
StatusUrl /iirsStatus RemoteOk
. 然后,我们通过转到 来测试 IIRS 是否正常工作http://mysite.example.com/iirsStatus
。它应该为您打印出一些状态行。Global Redirect
“非清洁到清洁”选项!它将无休止地重定向页面。IirfGlobal.ini:
Iirf.ini:
Drupal 的网站上有一些关于在我目前使用的 II6 中使用干净 URL 的文档。查看http://drupal.org/node/3854。
简短的回答是从下载 ISAPI Rewrite 2 litehttp://www.isapirewrite.com/。精简版只允许您为整个 IIS 配置配置一组重写规则,但效果很好并且是免费的。
付费版本允许您为您在 IIS 中配置的每个站点指定重写规则,但需要更多的 IIS 配置。
我使用的 ISAPI 规则是:
如果您的 Drupal 安装安装在子目录下,您可能需要稍微调整一下这些规则。
我已经使用 Ionic Rewrite 有一段时间了……它是免费的,而且效果很好
http://www.codeplex.com/IIRF
我设法通过安装 URL 重写器模块并使用以下代码在基本目录中创建 web.config 文件来实现这一点:
这篇文章中有更多信息,继续说:“当通过 FastCGI 模块使用 PHP 时,您还需要安装一个修补程序来纠正 REQUEST_URI 行为。有关更多信息,请参阅KB954946。此问题的一个症状是所有表单提交都被重定向到该网站的首页。”
IIRF是一个免费的 URL 重写器,适用于 IIS 并与 drupal 一起使用。