-1
votes

Rediriger la page www ou non www vers https: // www sauf une page

J'essaie d'appliquer https: // www. code> sur toutes mes pages sauf hotels.php code>. Mon code actuel ci-dessous ajoute www. Code> deux fois, c'est-à-dire https://www.wwww.example.com code>

.htaccess strong> P>

RewriteEngine On
RewriteCond %{HTTPS} =off
RewriteCond %{REQUEST_URI} !^\/hotels.php\/
RewriteRule (.*) https://www.%{HTTP_HOST}/$1 [L,R=301]    

RewriteCond %{HTTPS} =on
RewriteCond %{REQUEST_URI} \/hotels.php\/
RewriteRule (.*) http://www.%{HTTP_HOST}/$1 [L,R=301]


4 commentaires

Déjà été posé et répondu à Stackoverflow.


@jasie S'il vous plaît voter pour fermer / drapeau comme dupliquer avec le Q / A approprié.


Réécriture configurée dans .htaccess "LOOPS" jusqu'à ce qu'aucune règle ne correspond plus. après vous avez redirigé de manière externe à https://www.example.com/foo déjà (ou si vous avez demandé cela pour commencer par), votre premier ensemble de conditions et de règles Redirige à nouveau - mais la variable http_host contient maintenant www.example.com déjà, à laquelle vous ajoutez un autre www. devant. Vous avez besoin d'une condition supplémentaire dans cet endroit qui vérifie si le nom d'hôte ne commence pas avec www. déjà, voir Stackoverflow.com/a/4958847/10283047 pour un exemple.


Dupliqué possible de Exception de redirection HTAccess


3 Réponses :


0
votes

Pas un maître avec Htaccess Regex, bit cela fonctionne pour moi:

<IfModule mod_rewrite.c>
    RewriteCond %{HTTPS} off [OR]
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteCond %{HTTP_HOST} ^(.*)$  [NC]
    RewriteRule (.*) https://www.%1/$1 [R=301,L]
</IfModule>


0 commentaires

2
votes

Essayez ces conditions de réécriture:

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# force https:// for all except your desired URLs    
RewriteCond %{HTTPS} off
RewriteCond %{THE_REQUEST} !/hotels.php/ [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# force http:// for your desired URLs
RewriteCond %{HTTPS} on
RewriteCond %{THE_REQUEST} /hotels.php/ [NC]
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]


0 commentaires

0
votes

Vous devez vérifier si www est dans l'URI de la demande lorsque vous vérifiez HTTPS. Essayez ceci: xxx


1 commentaires

Tout fonctionne bien avec cela, mais des hôtels.php toujours en cours de chargement avec https: // ne le redirige pas à http: //