2016-06-28 148 views
1

在VPS建立letsencrypt後,我的這些都是letsencrypt設置重寫條件:阿帕奇國防部重寫(所有的HTTP請求HTTP)間

RewriteEngine on 
RewriteCond %{SERVER_NAME} =xy.com [OR] 
RewriteCond %{SERVER_NAME} =www.xy.com 
RewriteRule^https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent] 

它工作正常,但我想請求重定向到「 https://www.xy.com也是https。我嘗試使用此代碼:

RewriteEngine on 
RewriteCond %{SERVER_NAME} =xy.com [OR] 
RewriteCond %{SERVER_NAME} =www.xy.com [OR] 
RewriteCond %{SERVER_NAME} =https://www.xy.com 
RewriteRule^https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent] 

它不起作用。任何想法該怎麼辦?

沒有任何答案奏效。這是放在我的www/html/xy/public文件夾中的文件。所有的要求都會指向這一點,我不知道這是否會導致問題?

<IfModule mod_rewrite.c> 
<IfModule mod_negotiation.c> 
    Options -MultiViews 
</IfModule> 

RewriteEngine On 

# Redirect Trailing Slashes If Not A Folder... 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)/$ /$1 [L,R=301] 

# Handle Front Controller... 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [L] 

# Handle Authorization Header 
RewriteCond %{HTTP:Authorization} . 
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 
</IfModule> 

回答

1

嘗試:

RewriteEngine on 


RewriteCond %{HTTPS} off [OR] 
RewriteCond %{HTTP_HOST} ^www\.(.+) 
RewriteRule^https://%1%{REQUEST_URI} [NC,L] 

這將重定向都httpwwwhttps://

或者您可以使用此:

RewriteEngine on 
RewriteCond %{SERVER_NAME} ^(?:www\.)?(xy)\.com$ 
RewriteRule^https://%1%{REQUEST_URI} [END,QSA,R=permanent] 
+0

完全不工作,我編輯的第一篇文章。 –

+0

你是什麼意思的「不工作」?你嘗試過第二種選擇嗎? – starkeen

1

爲了讓所有的HTTP請求到HTTPS您需要使用的全部是:

RewriteEngine On 
RewriteCond %{HTTPS} !=on 
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L] 

它基本上是說,如果HTTPS是未開啓,那麼它將其更改爲https://