dans Mod_rewrite / ISAPI_Rewrite, comment puis-je faire des règles affectent des domaines spécifiques?
-
13-09-2019 - |
Question
Je viens récemment migré d'un hôte Linux à un serveur dédié avec Windows 2003, je n'avais qu'un seul site en utilisant Mod_rewrite, mais avec ISAPI _Rewrite 3 libre, les règles sont globales.
Comment puis-je écrire une condition d'affecter seulement « mysite.com » et pas les autres?
Ceci est mon fichier 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]
Je ne veux pas acheter ISAPI_Rewrite juste pour ce seul site
Merci
La solution
Au moins en ce qui concerne mod_rewrite d'Apache, vous pouvez utiliser le < a href = "http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriteflags" rel = "nofollow noreferrer"> C
drapeau à chaîne les règles comme celle-ci:
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]
Si une règle ne pas correspondance, toutes les règles enchaînées suivantes sont ignorées. Cela signifie que, si la première règle ne, les règles suivantes chaînés sont ignorés correspondent pas à (nom d'hôte est example.com
pas). Note de ne pas ajouter le drapeau C
à la dernière règle que le drapeau de la chaîne.