在MOD_Rewrite / ISAPI_Rewrite中,如何使规则影响特定域?

时间:2009-09-22 20:17:09

标签: mod-rewrite isapi-rewrite clean-urls

我刚刚从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

谢谢

1 个答案:

答案 0 :(得分:1)

至少关于Apache’s mod_rewrite,你可以使用C flag来链接这样的规则:

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标志添加到最后一条规则作为链标志。