2013-07-15 99 views
2

我想將整個網站(包括所有子網域)重定向到https。將整個網站重定向到https

這項工作?

RewriteEngine on 
RewriteCond %{HTTPS} !=on 
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] 
+0

你從你自己的測試嗎? – Usman

回答

1

雖然您的代碼可能正常工作,但我會建議使用%{HTTP_HOST}而不是%{SERVER_NAME}。請理解2個變量之間的差異。 %{SERVER_NAME}是在您的Apache配置中配置的服務器的名稱,但稍後將在HTTP請求中實時接收域名。因此,而不是你的代碼使用本:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteCond %{HTTPS} Off 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

爲了排除上述規則對特定子域使用這樣的代碼:

RewriteCond %{HTTP_HOST} !^sub\.domain\.com$ [NC] 
RewriteCond %{HTTPS} Off 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
0

是的,這將工作。

重要的是要確保規則是之前您可能有任何路由規則,沒有其他規則重定向到http://

+0

謝謝!如果我想重定向整個網站,除了一個子域名,我該怎麼辦? –

相關問題