2012-05-07 1 views
2

Je l'ai utilisé htaccess pour forcer toutes les pages de re route vers https en utilisant ...Comment puis-je rediriger toutes les pages vers https, en utilisant .htaccess, avec des exceptions?

RewriteEngine on 
RewriteBase/

RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://ourdomain.com/$1 [R,L] 

Est-il possible que je peux renverser cette règle pour ourdomain.com/videos & & ourdomain.com/blog en vous assurant que ces pages sont obligés de laisser tomber le https et d'utiliser http?

Répondre

1

Essayez

RewriteEngine on 
RewriteBase/

RewriteCond %{SERVER_PORT} 443 
RewriteRule ^blog/?(.*) http://ourdomain.com/blog/$1 [R,L] 

RewriteCond %{SERVER_PORT} 443 
RewriteRule ^videos/?(.*) http://ourdomain.com/videos/$1 [R,L] 

RewriteCond %{SERVER_PORT} 80 
RewriteCond %{REQUEST_URI} !^/videos 
RewriteCond %{REQUEST_URI} !^/blog 
RewriteRule ^(.*)$ https://ourdomain.com/$1 [R,L] 
4

Vous êtes déjà en partie là avec votre utilisation de RewriteCond pour limiter les réécritures aux demandes sur le port 80.

Vous ne pas voulez réécrire les requêtes sur le port 80 pour /videos et /blog, donc:

RewriteCond %{SERVER_PORT} 80 
RewriteCond %{REQUEST_URI} !^/videos 
RewriteCond %{REQUEST_URI} !^/blog 
RewriteRule ^(.*)$ https://ourdomain.com/$1 [R,L] 

et vous voulez réécrire re quêtes pour ces URL sur le port (probablement) 443:

RewriteCond %{SERVER_PORT} 443 
RewriteRule ^/((videos|blog)/.*) http://ourdomain.com/$1 [R,L] 
+0

Hmmm, ccKep de peut-être plus propre ... – larsks

+0

Merci pour l'aide, je me fais SPME un comportement étrange avec les deux solutions ... Si je vais à https : //domain.com/blog ou/videos il ne redirige pas et garde le https si je vais sur http://domain.com/videos ou/blog il redirige vers la page d'accueil https://domain.com –

Questions connexes