в MOD_Rewrite / ISAPI_Rewrite как сделать так, чтобы правила влияли на конкретные домены? - PullRequest
0 голосов
/ 23 сентября 2009

Я только что мигрировал с хоста linux на выделенный сервер с Windows 2003, у меня был только один сайт, использующий Mod_rewrite, но с ISAPI _Rewrite 3 free, правила глобальные.

Как мне написать условие, влияющее только на "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 Ответ

1 голос
/ 10 октября 2009

По крайней мере, относительно mod_rewrite Apache , вы можете использовать флаг 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 к последнему правилу как флаг цепочки.

...