簡體   English   中英

Mod_rewrite將默認路徑與www結合在一起。 和https重定向

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM