2017-03-14 2 views
1

Ich habe diese Regel unten in meiner .htaccess-Datei:Cant finden Protokollvariable in Apache RewriteRule

RewriteRule ^(.*)$ https://example.com/?http://%{HTTP_HOST}%{REQUEST_URI}?%{QUERY_STRING} [NE,R=302,L] 

Aber ich möchte den Benutzer umleiten in dem Protokoll basiert verwendet (HTTP oder HTTPS). Ich versuchte dies:

RewriteRule ^(.*)$ https://example.com/?%{SERVER_PROTOCOL}://%{HTTP_HOST}%{REQUEST_URI}?%{QUERY_STRING} [NE,R=302,L] 

Aber der Benutzer wird umgeleitet „https://example.com/?HTTP/1.1://example.com/anything?anything

Ich möchte nicht RewriteCond für eine einfache Aufgabe wie diese verwenden, gibt es eine Variable, die ich für diese verwenden können, ich meine, , die http oder https zurückgeben? Ich habe hier http://httpd.apache.org/docs/current/mod/mod_rewrite.html überprüft, aber ich bin mir nicht sicher, ob es einen gibt.

+2

Meinst du% {REQUEST_SCHEME}? – starkeen

+0

YEAP :) Bitte post eine Antwort werde ich genehmigen, danke Mann! – Samul

Antwort

2

Da ich Benutzer @Starkeen gebeten habe, seinen Kommentar als Antwort zu posten, und er nicht gepostet hat, veröffentliche ich ihn hier. Um den HTTP- oder HTTPS-Teil des verwendeten Protokolls zu erfassen, könnten Sie% {REQUEST_SCHEME} verwenden.

Allerdings rate ich nicht, es zu verwenden, weil ich es versuchte und es ist fehlerhaft, in einigen Fällen sogar mit HTTPS, es täuscht, dass es HTTP verwendet, so sollten Sie andere Alternativen online verwenden.

Verwandte Themen