dans Mod_rewrite / ISAPI_Rewrite, comment puis-je faire des règles affectent des domaines spécifiques?

StackOverflow https://stackoverflow.com/questions/1462331

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

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top