2017-06-26 1 views
1

Ich verwende meine .htaccess Datei, um https auf meiner Website zu erzwingen. Dies ist, was meine .htaccess Datei wie folgt aussieht:Wie kann ich .htaccess verwenden, um SSL außer einem Pfad zu erzwingen

# SSL only 
RewriteCond %{HTTP:X-Forwarded-Proto} !^https 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [NC,R=301,L] 

ich DOMPDF bin mit einem pdf zu machen und es nicht https. Also, ich würde gerne https auf alle Seite außer die Anfrage an die PDF-Datei zwingen. Wenn die Anforderung an die PDF-Datei über https erfolgt, sollte sie nur an http weitergeleitet werden.

Wenn ich mich ein paar SO-Threads hierüber ansehe, habe ich das bisher, aber es funktioniert nicht ganz.

# SSL only for all pages except pdf requests 
RewriteCond %{HTTP:X-Forwarded-Proto} !^https 
RewriteCond %{REQUEST_URI} !^\/listing\/pdf\/(.*) 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [NC,R=301,L] 

RewriteCond %{HTTP:X-Forwarded-Proto} ^https 
RewriteCond %{REQUEST_URI} !^\/listing\/pdf\/(.*) 
RewriteRule (.*) http://%{HTTP_HOST}/$1 [L,R=301] 

Ich möchte einen Antrag auf /listing/pdf?listingId=123 gemacht zwingen http nur zu sein.

Vielen Dank für Anregungen!

Antwort

0

Dies sollte es für Sie tun:

# SSL only for all pages except pdf requests 
RewriteCond %{HTTP:X-Forwarded-Proto} !=https 
RewriteCond %{REQUEST_URI} !=/listing/pdf 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [NE,R=301,L] 

RewriteCond %{HTTP:X-Forwarded-Proto} =https 
RewriteRule ^listing/pdf$ http://%{HTTP_HOST}%{REQUEST_URI} [NE,R=301,L] 

Vergessen Sie nicht, Ihren Browser-Cache vor dem Test zu löschen, da Ihre bisherigen Versuche wahrscheinlich im Cache gespeichert werden.

aktualisieren

die Sie interessieren, wenn Sie nicht hinter einem Reverse-Proxy sind:

# SSL only for all pages except pdf requests 
RewriteCond %{HTTPS} !=on 
RewriteCond %{REQUEST_URI} !=/listing/pdf 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [NE,R=301,L] 

RewriteCond %{HTTPS} =on 
RewriteRule ^listing/pdf$ http://%{HTTP_HOST}%{REQUEST_URI} [NE,R=301,L] 
+0

Thank you! Das kommt näher, denke ich - ich bekomme keine konsistenten 500 mehr - aber wenn ich auf den Link zu meinem PDF klicke, bleibt es immer noch in https. Meine Seite wird immer https sein, also muss ich nur auf http klicken, wenn dieser Link angeklickt wird. – Damon

+0

Verwenden Sie einen Reverse-Proxy? Ich gehe davon aus, dass Sie 'X-Forwarded-Proto 'überprüfen, aber das gilt nur, wenn Sie einen Reverse-Proxy haben, der sich um Ihre HTTPS-Beendigung kümmert? – SuperDuperApps

+0

Das ist eine gute Frage - ich weiß nicht, ob ich es bin oder nicht. Das sind 110% meines Kampfes. Das liegt weit über meinem Können. Was ich angefangen habe, war ein Leitfaden von der KB auf meinem Hosting. – Damon

Verwandte Themen