Https vers http de redirection à l'aide de htaccess
Je suis en train de rediriger https://www.example.com à http://www.example.com. J'ai essayé le code suivant dans le .fichier htaccess
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
Ce code avec succès redirige https://example.com à http://www.example.com. Cependant lorsque je tape dans https://www.example.com puis il me donne une "page web non disponible" erreur dans le navigateur.
J'ai aussi essayé les 2 codes sans succès
Tentative 1
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/(.*):NOSSL$ http://www.example.com/$1 [R=301,L]
Tentative 2
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}
À la fois au-dessus de tentatives ont échoué. Des suggestions?
Vous devez vous connecter pour publier un commentaire.
Tentative 2 a été proche de la perfection. Juste le modifier légèrement:
R=302
si vous ne souhaitez pas faire de permanent. Cela m'a débarqué dans le pétrin quand mon SSL expiré et j'ai voulu le déplacer temporairement de retour àhttp
avant de m'en aller à travers la douloureuse procédures de renouvellement.Cependant, si votre site ne dispose pas d'un certificat de sécurité, il est sur un environnement d'hébergement partagé, et vous ne voulez pas d'obtenir la "avertissement", lorsque votre site web est par le biais de https, vous ne pouvez pas rediriger à l'aide de htaccess. La raison en est que le message d'avertissement est déclenché avant que la demande va même à travers le fichier htaccess, donc vous devez les fixer sur le serveur. Aller dans /etc/httpd/conf.d/ssl.conf et commenter la partie sur le serveur virtuel 443. Mais les chances sont que votre fournisseur d'hébergement ne vous donnera pas beaucoup de contrôle. De sorte que vous auriez à le déplacer vers un autre hôte ou acheter SSL seulement si l'avertissement ne déclenche pas avant votre htaccess a une chance de redirection.
Vous pouvez utiliser la règle de redirection à partir https à http :
Explication :
Vérifie si le HTTPS est sur (la Demande est faite à l'aide de https)
Puis
Rediriger toutes les demandes (https://example.com/foo)
à http://example.com/foo .
$1 est la partie de l'expression régulière dans RewriteRule modèle, il contient n'importe quelle valeur a été capturé dans (.+) dans ce cas ,il saisit le plein request_uri tout ce qui est après le nom de domaine.
[NC,L,R] sont les drapeaux, NC rend l'uri cas sensibles, vous pouvez utiliser les lettres majuscules ou minuscules dans la demande.
L drapeau indique que le serveur arrête proccessing d'autres règles si la currunt règle de correspondance, il est important d'utiliser le drapeau L pour éviter la règle de conflit lorsque vous avez plus sur les règles dans un bloc.
R drapeau est utilisé pour faire une redirection externe.
La différence entre http et https, c'est que les requêtes https sont envoyés via une connexion ssl chiffrée. La connexion ssl chiffrée doit être établie entre le navigateur et le serveur avant que le navigateur envoie une requête http.
Https demandes sont en fait des requêtes http qui sont envoyés via une connexion ssl chiffrée. Si le serveur refuse d'établir une connexion ssl chiffrée puis le navigateur n'aura pas de connexion pour envoyer la demande plus de. Le navigateur et le serveur n'a aucun moyen de parler les uns aux autres. Le navigateur ne sera pas en mesure d'envoyer l'url qu'il veut pour l'accès et le serveur ne sera pas en mesure de répondre avec une redirection vers une autre url.
Ce n'est donc pas possible. Si vous souhaitez réagir aux liens en https, alors vous avez besoin d'un certificat ssl.
Votre code est correct. Il suffit de les placer à l'intérieur de la
<VirtualHost *:443>
Exemple: