it-swarm.com.de

htaccess HTTPS mit Ausnahme einer Seite erzwingen

Dies ist meine aktuelle .htaccess-Datei:

RewriteEngine On
ErrorDocument 404 /404.html
# 1
RewriteRule ^extra/([0-9]+)/(.*).html?$ pages.php?do=view&id=$1
RewriteRule ^special-bonus/([0-9]+)/(.*).html?$ pages.php?do=bonus&id=$1
RewriteRule ^thankyou/(.*).html?$ static.php?do=thankyou&prod=$1
# 2
RewriteRule ^list.html pages.php?do=list
RewriteRule ^about.html static.php?do=about
# 3
RewriteRule ^404.html static.php?do=404
RewriteRule ^room.html room.php
# 4
RewriteRule ^sitemap.xml sitemap.php

Ich möchte HTTPS (SSL) auf jeder Seite außer room.html erzwingen. Wie kann ich das machen? Ich verwende Apache HTTP Server (Version 2.2.x).

So erzwingen Sie HTTPS auf jeder Seite, die ich verwendet habe:

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

Es hat super funktioniert, aber jetzt muss ich Änderungen vornehmen, damit es auf jeder Seite außer room.html funktioniert und ich habe keine Ahnung, wie das geht.

4
Cassie Kasandr

In Ihrem Beispiel können Sie ein out in Ihrem Code verwenden.

RewriteEngine On
# Go to https if not on room.html
RewriteCond %{SERVER_PORT} 80 
RewriteCond %{REQUEST_URI} !^/room.html$ [NC]
RewriteRule ^(.*)$ https://www.mycookiedomain.com/$1 [R,L]

# Go to http if you are on room.html
RewriteCond %{SERVER_PORT} !80 
RewriteCond %{REQUEST_URI} ^/room.html$ [NC]
RewriteRule ^(.*)$ http://www.mycookiedomain.com/$1 [R,L]

Sie müssen dies wahrscheinlich ein wenig auf Ihre Bedürfnisse zuschneiden, aber dieses Beispiel ist zumindest naheliegend.

4
closetnoc

Einfacher geht es nicht. Sie können PHP -Dateien für Fehlerdokumente anstelle von HTML-Dateien verwenden, sodass eine Ihrer Zeilen nicht erforderlich ist. Außerdem habe ich die Umschreibezeit und die Umschreibezeit vereinfacht und korrigiert. Die einzige Bedingung, die Sie wirklich prüfen, besteht darin, festzustellen, ob die Verbindung über den Standard-HTTP-Port hergestellt wird. Wenn dies der Fall ist, ersetzen Sie die Anforderung an room.html durch room.php auf mycookiedomain.com, und weil Sie von HTTP zu HTTP wechseln Wenn Sie sicher sind, sollten Sie eine tatsächliche Weiterleitung (Statuscode 301) anstelle der Standardeinstellung 302 verwenden.

Um optimale Ergebnisse zu erzielen, stellen Sie außerdem sicher, dass sich alle genannten Dateien sowie .htaccess im selben Ordner befinden.

ErrorDocument 404 static.php?do=404

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^room.html$ https://www.mycookiedomain.com/room.php [R=301,L]

RewriteRule ^extra/([0-9]+)/(.*).html?$ pages.php?do=view&id=$1
RewriteRule ^special-bonus/([0-9]+)/(.*).html?$ pages.php?do=bonus&id=$1
RewriteRule ^thankyou/(.*).html?$ static.php?do=thankyou&prod=$1

RewriteRule ^list.html pages.php?do=list
RewriteRule ^about.html static.php?do=about

RewriteRule ^sitemap.xml sitemap.php
0
Mike