我刚刚从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
谢谢
答案 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
标志添加到最后一条规则作为链标志。