Apache-2.2
使用 Apache2 為 HTTPS 從域中刪除“www”?
剛剛安裝了一個全新的 12.04 ubuntu 伺服器。
總是使用樣板重定向來刪除 www 但它看起來不支持 https 所以我開始四處尋找。嘗試了我發現的所有內容,並且以某種方式http“www”刪除效果很好,但https不會重定向。
這是我使用的(在 /etc/apache2/conf.d 的 bp_rewrite.conf 文件中):
# Rewrite "www.example.com -> example.com" <IfModule mod_rewrite.c> RewriteCond %{HTTP_HOST} ^www\.(.+) RewriteCond %{HTTPS}s/%1 ^(on(s)|offs)/(.+) RewriteRule ^ http%2://%3%{REQUEST_URI} [L,R=301] </IfModule>
有沒有人經歷過這個?
您的範常式式碼看起來有點過於復雜,但與我使用的非常接近:
RewriteCond %{HTTPS}s%{HTTP_HOST} ^(on(s)|offs).+\.(.+\..+)$ RewriteRule ^(.*)$ http%2://%3$1 [R=301]
注意:這只會撕掉域名最後兩部分前面的任何內容。所以你的使用者可以輸入
what.the.example.com
,它會減少到example.com
. 如果您的域名是example.co.uk
或包含三個部分的內容,則必須修改第一行的末尾以適應。
為了
RewriteRule
觸發,兩個RewriteCond
指令都必須為真。這個怎麼樣:
<IfModule mod_rewrite.c> RewriteCond %{HTTP_HOST} ^www\.(.+)$ [OR] RewriteCond %{HTTPS} !=on RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301] </IfModule>
現在,如果只有一個條件保持為真(對於
https://www.example.com/
,只有第一個條件為真),RewriteRule
則應用