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?
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]
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
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]