2009-07-17 10 views
0

J'ai un code ci-dessous dans mod-rewrite.txtUrl question Réécrire dans IIS MOD RÉÉCRITURE

RewriteEngine On 
RewriteRule /\.htaccess$ - [F] 

RewriteCond %{HTTP_HOST} !www\.espireinfo\.com$ 
RewriteRule ^(.*)$ http://www\.espireinfo\.com$1 [R=301,L] 

RewriteRule ^/schools/index.aspx$ /schools/english-language.aspx [R=301,L] 
RewriteRule ^/about/Contact.aspx$ /about/contact.aspx [R=301,L] 

Comme vous pouvez le voir ci-dessus qui est à l'aide www.espireinfo.com domaine pour la réécriture. Je veux un autre domaine www.rai.com avec la configuration ci-dessous pour être écrit dans le même fichier mod-rewrite.

RewriteCond %{HTTP_HOST} !www\.rai\.com$ 
RewriteRule ^(.*)$ http://www\.rai\.com$1 [R=301,L] 

RewriteRule ^/schools/index.aspx$ /schools/eng-lang.aspx [R=301,L] 
RewriteRule ^/about/Contact.aspx$ /about/contactdetails.aspx [R=301,L] 

donc mon dossier mod-rewrite.txt complet sera donné comme ci-dessous:

RewriteEngine On 
RewriteRule /\.htaccess$ - [F] 

RewriteCond %{HTTP_HOST} !www\.espireinfo\.com$ 
RewriteRule ^(.*)$ http://www\.espireinfo\.com$1 [R=301,L] 

RewriteRule ^/schools/index.aspx$ /schools/english-language.aspx [R=301,L] 
RewriteRule ^/about/Contact.aspx$ /about/contact.aspx [R=301,L] 

RewriteCond %{HTTP_HOST} !www\.rai\.com$ 
RewriteRule ^(.*)$ http://www\.rai\.com$1 [R=301,L] 

RewriteRule ^/schools/index.aspx$ /schools/eng-lang.aspx [R=301,L] 
RewriteRule ^/about/Contact.aspx$ /about/contactdetails.aspx [R=301,L] 

J'ai essayé cela, mais est-il seulement répondre aux premier domaine www.espireinfo.com.

Est-il possible de contrôler deux domaines avec la même réécriture dans le même fichier mod-rewrite.txt.

Veuillez suggérer ce que je peux faire pour résoudre ce problème. Je serai très reconnaissant pour votre aide!

+0

Pourriez-vous préciser quel outil de réécriture utilisez-vous? Est-ce que c'est Apache mod-rewrite ou autre chose? – TonyCool

+0

J'utilise IIS MOD Réécrire un produit de la société Micronovae –

Répondre

0

Vous souhaitez qu'un serveur se comporte comme deux serveurs différents par défaut, il ne peut pas le faire.

Vous devez en choisir un comme valeur par défaut pour la redirection 301. alors gardez seulement une de ces sections.

Ensuite, ajoutez la bonne condition sur la page réécrit. Ainsi, pour espireinfo étant le defualt

RewriteEngine On 
RewriteRule /\.htaccess$ - [F] 

# espireinfo is the default server 
RewriteCond %{HTTP_HOST} !www\.espireinfo\.com$ 
RewriteCond %{HTTP_HOST} !www\.rai\.com$ 
RewriteRule ^(.*)$ http://www\.espireinfo\.com$1 [R=301,L] 

# espireinfo.com rewrites 
RewriteCond %{HTTP_HOST} www\.espireinfo\.com$ 
RewriteRule ^/schools/index.aspx$ /schools/english-language.aspx [R=301,L] 
RewriteCond %{HTTP_HOST} www\.espireinfo\.com$ 
RewriteRule ^/about/Contact.aspx$ /about/contact.aspx [R=301,L] 

# rai.com rewrites 
RewriteRule ^/schools/index.aspx$ /schools/eng-lang.aspx [R=301,L] 
RewriteRule ^/about/Contact.aspx$ /about/contactdetails.aspx [R=301,L] 

C'est à moins que je l'ai trompé votre nom de domaine réécritures, à savoir si vous essayez réellement de forcer préfixe www.

+0

Merci Simeon! J'ai un grand nombre de règles de réécriture pour espireinfo et peu pour rai. dois-je écrire RewriteCond% {HTTP_HOST} www \ .espireinfo \ .com $ avant chaque réécriture d'url pour espireinfo.com, alors qu'en est-il de l'URL www.rai.com réécrit –

+0

Vrai, les règles de rai.com devraient aussi avoir un Cond chacun. Comme l'espireonfp.com est toujours en train de lire ces règles. Mais si vous avez un grand nombre de règles, c'est un travail de couper-n-coller, une autre option pourrait être de mettre toutes vos réécritures simples dans un réécrire, alors vous aurez seulement besoin d'un Cond pour le lot. http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritemap –