Drupal 在 IIS6 上使用 IIRF 清理具有不同子文件夹和根网站的 URL

Drupal 在 IIS6 上使用 IIRF 清理具有不同子文件夹和根网站的 URL

嗨!我在 Win2003 服务器上安装了 IIS6,有一个网站 www.example-one.com。我启用了 IIRF,一切运行良好(也感谢Drupal 在 IIS 上清理 URL

在同一台服务器上,我还有一个网站,网址为 www.example-two.com/mysite。但我无法在此网站上启用 cleanURLs。如果我添加建议的子文件夹重写规则(与上面的链接相同),cleanURLS 会在此网站上工作,但在另一个网站上停止工作。我猜只有最后一行被执行了。

我并不是一个真正的系统管理员(我被指派来维护这台服务器,因为没有其他人会这么做),有人能帮我为 IIRF 编写适当的重写规则,以便在两个网站上启用 cleanURL 吗?

提前致谢。

答案1

经过一些额外的研究,我了解到“L”标志“告诉 IIRF 如果当前模式匹配,则不再处理其他模式”。因此,我的解决方案是从上述线程修改 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
# firstly for the subfolder without the L flag
RewriteRule /mysubfolder/(.*)\?(.*)$ /mysubfolder/index.php\?q=$1&$2 [I]
# then for the root
RewriteRule /(.*)\?(.*)$ /index.php\?q=$1&$2 [I,L]

# now pass through to the generic handler
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# firstly for the subfolder without the L flag
RewriteRule ^/mysubfolder/(.*)$ /mysubfolder/index.php?q=$1 [I]
# then for the root
RewriteRule ^/(.*)$ /index.php?q=$1 [I,L]

嗨嗨。

相关内容