web-dev-qa-db-fra.com

Comment rediriger www et non mais pas IP

J'essaie de rediriger www.domain.com ou domain.com vers www.domain.com/temp.html

J'utilise le code suivant:

RewriteCond %{HTTP_Host} ^.*$
RewriteRule ^/?$ "http\:\/\/www\.domain\.com\/temp\.html" [R=301,L]

Cela fonctionne cependant, je ne veux pas rediriger l'IP. Donc, si quelqu'un tape l'adresse IP statique du domaine, je ne veux pas qu'ils soient redirigés vers www.domaine.com/temp.html

Quelqu'un a le code pour s'occuper de ça?

4
Chad T Parson

Vous pouvez effectuer cette exclusion en modifiant votre condition HTTP_Host:

RewriteCond %{HTTP_Host} !^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$
RewriteRule ^/?$ "http\:\/\/www\.domain\.com\/temp\.html" [R=301,L]

ou l'inverse:

RewriteCond %{HTTP_Host} ^(www\.)?domain\.com$ [NC]
RewriteRule ^/?$ "http\:\/\/www\.domain\.com\/temp\.html" [R=301,L]
2
Jon Lin
RewriteCond %{HTTP_Host} ^domain\.com
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=permanent,L] 

ne pas utiliser le ^. * $, qui correspond à tous, plus vous pouvez vous retrouver avec une boucle de redirection

1
Abhishek Dujari

vous pouvez l'utiliser, cela fonctionnera sans taper le nom de domaine lui-même dans le fichier, donc peut être utilisé dans n'importe quel projet.

RewriteCond %{HTTP_Host} !^www\. [NC] [or]
RewriteCond %{HTTP_Host} !^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$
RewriteRule .? http://www.%{HTTP_Host}%{REQUEST_URI} [R=301,L]
0
Ashraf