0

我最近刚从 linux 主机迁移到带有 windows 2003 的专用服务器,我只有一个使用 Mod_rewrite 的站点,但是使用 ISAPI _Rewrite 3 免费,规则是全局的。

如何编写仅影响“mysite.com”而不影响其他条件的条件?

这是我的 httpd.conf 文件

# Helicon ISAPI_Rewrite configuration file
# Version 3.1.0.66

RewriteEngine On
RewriteBase /
RewriteRule ^([A-Za-z0-9-]+)/?$ index.php?page=$1 
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ index.php?page=$1&id=$2 [L]

我不想只为这个网站购买 ISAPI_Rewrite

谢谢

4

1 回答 1

1

至少关于Apache 的 mod_rewrite,您可以使用该C标志来链接规则,如下所示:

RewriteCond %{HTTP_HOST} =example.com
RewriteRule ^ - [C]
RewriteRule ^([A-Za-z0-9-]+)/?$ index.php?page=$1 [C]
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ index.php?page=$1&id=$2 [L]

如果一条规则不匹配,则跳过所有后续的链式规则。这意味着,如果第一条规则不匹配(主机名不是example.com),则跳过以下链式规则。注意不要将C标志添加到最后一条规则作为链标志。

于 2009-10-09T22:40:44.723 回答