2015-04-18 8 views
7

Meine Website unterstützt HTTP- und HTTPS-Protokolle. Jedoch Sie den Code unten in .htaccess-Datei verwendet, kann ich nur eine Domäne CORS-Anfragen zu ermöglichen:Querverweisanfragen für HTTP und HTTPS zulassen

Header set Access-Control-Allow-Origin: http://example.com

Ich mag CORS, damit sowohl für HTTP und HTTPS-Versionen von meiner Seite (nicht nur „*“) und versucht, die Lösungen hier: Access-Control-Allow-Origin Multiple Origin Domains?

Aber das Problem ist, dass alle Lösungen in der Anfrage auf Origin Header verlassen, die nicht existieren können und auch nicht sicher ist. (Jeder kann einen Ursprungsheader in ihre Anfrage einfügen)

Ich möchte wissen, ob die Anfrage über https geliefert wurde und diese Informationen verwenden, um den richtigen CORS-Header festzulegen. So etwas wie dieses:

SetEnvIf servedOverHttps httpsOrigin=true 
Header set Access-Control-Allow-Origin: https://example.me env=httpsOrigin 

SetEnvIf notServedOverHttps httpOrigin=true 
Header set Access-Control-Allow-Origin: http://example.me env=httpOrigin 

Wie kann ich herausfinden, dass es eine https Anfrage ist?

Antwort

3

Haben Sie versucht, HTTPS Variable zu verwenden?

Es wird auf "on" für alle https-Anforderungen festgelegt. Ihre .htaccess wie diese

aussehen sollte
Header set Access-Control-Allow-Origin: http://example.com    #default 
Header set Access-Control-Allow-Origin: https://example.com env=HTTPS #override if https 
+1

was passiert, wenn man Header programmatisch von PHP-Datei einstellen? – Vivek