2017-08-29 67 views
-1

我有一個簡單的htaccess重定向規則:.htaccess中設置HTTPS作爲默認的,所以重定向到/將跳過第一個HTTP重定向

RewriteRule ^directory$ / [R=301,L] 

目前執行以下操作重定向結構:
https://mywebsite.com/directory - >http://mywebsite.com - >https://mywebsite.com (注意HTTPS vs HTTP)。

第二屆重定向是由於規則集來處理基於HTTP> HTTPS重定向:

RewriteCond %{HTTP_HOST} !mywebsite.com$ [NC] 
RewriteRule ^(.*)$ https://mywebsite.com/$1 [L,R=301] 

RewriteCond %{REQUEST_URI} !\.(jpg|png|gif|bmp)$ [nc] 
RewriteCond %{HTTP:X-Forwarded-Proto} =http 
RewriteRule ^(.*)$ https://%{SERVER_NAME}/$1 [R=301,L] 

但我想,以避免雙重一步。如何將HTTPS設置爲htaccess的默認值?

+0

有作爲「默認htaccess的」沒有這樣的事。向我們展示您的完整規則集。 – CBroe

+0

@CBroe添加了HTTPS重定向。這是你的意思嗎? – Noam

+0

@CBroe當我在htaccess中指定重定向到「/」時,他應該怎麼知道它是https還是http? – Noam

回答

3

如何將HTTPS設置爲htaccess的默認值?

只需使用https:// URL重定向中:

RewriteRule ^directory/?$ https://%{HTTP_HOST}/ [R=301,L,NE,NC] 
+0

而'%{HTTP_HOST}'包含子域名,對不對? – Noam

+0

是'HTTP_HOST'變量表示當前請求URL中的域名。 – anubhava

+0

所以基本上,對於htaccess的默認總是http,如果我想不同,我需要指定在每個url重定向規則? – Noam