2017-10-08 3 views
0

J'ai redirigé mon site Web vers https mais j'en ai besoin pour rediriger une seule page de https à http.Comment rediriger une seule page de https à http

Mes règles pour rediriger vers https sont:

RewriteCond %{HTTPS} off 
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

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

Quelle règle je pourrais utiliser pour rediriger une page à http?

+0

Cette question est posée encore et encore. Toujours il s'avère que la meilleure chose à faire est de fixer la raison pour laquelle vous voulez rediriger au lieu de rendre votre service non sûr ou cassé. – arkascha

+0

@arkascha parce que dans cette page j'ai besoin d'utiliser un widget externe qui ne fonctionne pas avec ssl – kb8

+0

Oui, y compris les trucs externes est la cause habituelle de telles tentatives. Bit qui ne fonctionnera pas par une redirection, le navigateur refusera de suivre une telle redirection. Vous avez besoin de proxy cette ressource via votre service à la place. – arkascha

Répondre

0

J'ai regardé et voici une réponse d'il y a quelques années avec un problème similaire. Ce code fonctionne selon les commentaires:

Essayez avec% {SERVER_PORT} (si par défaut http port est encore 80 et le port ssl est 443)

RewriteEngine On 
RewriteBase/

RewriteCond %{SERVER_PORT} 80 
RewriteCond %{REQUEST_URI} !^/blog_rss\.php$ [NC] 
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L,QSA] 

RewriteCond %{SERVER_PORT} 443 
RewriteRule ^(blog_rss\.php)$ http://%{HTTP_HOST}/$1 [R=301,L,QSA] 

question/de réponses originales à: 301 redirect HTTPS to HTTP for a single page

+0

Cela ne fonctionnera pas pour un widget externe incorporé dans une page. Tous les navigateurs refuseront de suivre une telle redirection pour de très bonnes raisons. – arkascha

0

Tout d'abord votre code ne sera pas attraper aucun wwww

RewriteCond %{HTTPS} off 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
# the first two lines above will catch all http request so , nothing will 
# pass to the following 
RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

Faites votre code comme ceci:

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

qu'exclure la page spacific ajouter cette

RewriteCond %{HTTPS} off [OR] 
RewriteCond %{HTTP_HOST} !^www\. 
RewriteCond %{REQUEST_URI} !^/your/path/to/pages$ 
RewriteRule^ https://www.yoursite.com%{REQUEST_URI} [L,R=301] 

Remarque: vider le cache de votre navigateur et le tester.

mise à jour:

RewriteCond %{HTTPS} on 
RewriteCond %{THE_REQUEST} my-page [NC] 
RewriteRule^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

Essayez ceci, cela signifie attraper toute demande contient https & votre page puis dans la force http

+0

Semble pas fonctionne – kb8

+0

avez-vous coap tel qu'il est ou modifier votre code? –

+0

désolé j'ai manqué% avant% {REQUEST_URI} l'essayer maintenant –