[英]Mod_rewrite combine default path with www. and https redirect
我正在嘗試減少我們網站上的重定向次數。 我已經設法合並了一些重定向代碼(強制使用www。和https://),但是如果沒有,我還需要添加默認路徑(/ en /)。
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule (.*) https://www.example.com%{REQUEST_URI} [R=301,L]
我要實現的另一段代碼是:
RewriteRule "^/$" /en/
因此,如果沒有給出路徑或參數,則需要將其重定向到/ en /。 (現在,我在PHP中執行此操作,這意味着幾乎每個輸入“ example.com”的人都會獲得兩次重定向,其中一個應該確實足夠)
我的目標是將這些規則組合為一個重定向。 那可能嗎?
最后,我還有一個內部重寫規則,該規則可能與上面的問題無關,但是為了完整起見,我將其添加:
RewriteRule "(^|/)\." - [F]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$/? index.php?rewrite=$1 [QSA]
您可以使用(按此順序):
RewriteRule ^$ /en/
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule (.*) https://www.example.com/$1 [R=301,L]
如果這是語言測試,則還可以測試值(例如:en,fr或de),並更改其中的第一行
RewriteRule !^(en|fr|de)/ /en/ [NC]
應該管用:
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{REQUEST_URI} ^/$
RewriteRule (.*) https://www.example.com/en%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule (.*) https://www.example.com%{REQUEST_URI} [R=301,L]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.