在 MOD_Rewrite / ISAPI_Rewrite 中,如何使规则影响特定域?
-
13-09-2019 - |
题
我最近刚刚从 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
谢谢
解决方案
至少关于 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
将最后一条规则标记为链标记。
不隶属于 StackOverflow