2017-04-22 52 views
0

我有一些麻煩的.htaccess文件工作沒有它造成一個重定向鏈的多個重定向規則:的.htaccess重定向到https而非http並添加前,如果它不以一個重定向存在削減

首先,我想迫使HTTPS

RewriteCond %{HTTPS} !=on 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [R=301] 

然後我想確保結尾的斜線應用

RewriteCond %{REQUEST_URI} !(/$|\.) 
RewriteRule (.*) %{REQUEST_URI}/ [R=301] 

然而,我想要做的這些都爲一個重定向。所以,如果一個請求與進來:

http://example.com/page 

在ONE 301重定向它應該給

https://example.com/page/ 

我使用httpstatus.io測試重定向鏈。非常感謝

回答

0

嘗試用下面,

RewriteCond %{HTTPS} !=on 
RewriteCond %{REQUEST_URI} !(/$|\.) 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI}/ [R=301] 
+0

感謝阿布舍克。我相信問題在於它不會將http://example.com/page/重定向到https://example.com/page/,因爲第二個條件未得到滿足。 – anthonyroberts

+0

你希望它跟蹤斜線或者沒有斜線,因爲上面的代碼對於我來說是爲了斜線。 –

+0

我希望它總是重定向到尾部的斜線。所以這兩個重定向都需要獨立工作和共同工作。 http:// example.com/page /(使用/)將跳過該規則並且不會重定向到https。 Stackoverflow正在超鏈接中轉動我的鏈接並刪除我之前評論中的斜槓 - 對不起:) – anthonyroberts