Domanda

Sono recentemente migrato da un host Linux ad un server dedicato con Windows 2003, ho avuto solo un sito utilizzando Mod_rewrite, ma con ISAPI _Rewrite 3 libera, le regole sono globali.

Come faccio a scrivere una condizione di influenzare solo "mysite.com" e non gli altri?

questo è il mio file 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]

Io non voglio comprare ISAPI_Rewrite solo per questo un sito

Grazie

È stato utile?

Soluzione

di Apache mod_rewrite , è possibile utilizzare il < a href = "http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriteflags" rel = "nofollow noreferrer"> C bandiera per la catena delle regole in questo modo:

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]

Se una regola non partita, tutte le seguenti regole concatenate vengono saltati. Ciò significa che, se la prima regola non corrisponde (nome host non è example.com), le seguenti regole concatenati vengono saltati. Nota di non aggiungere il flag C per l'ultima regola come la bandiera della catena.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top