[英]apache redirect in https from none www to www domain
編輯: Redirect permanent "/" "https://%{HTTP_HOST}/"
實際上在第一次重定向中不起作用。 它似乎有效,因為我的 CDN 自動將 http 重定向到 https:,而不是因為我的設置。 對困惑感到抱歉。
我正在嘗試編寫 Apache httpd 配置文件以將所有 http 流量重定向到 https,並且還需要將無 www 域重定向到 www。
例如http://example.com http://www.example.com https://example.com
都應該重定向到https://www.example.com
這是我所做的:
<VirtualHost ipaddress:80>
ServerName example.com
ServerAlias www.example.com
Redirect permanent "/" "https://%{HTTP_HOST}/"
</VirtualHost>
這部分有效。 所有 http 都重定向到 https。 請注意,%{HTTP_HOST} 已解析並替換。 現在我需要將無 www 重定向到 www
<VirtualHost ipaddress:443>
SSLEngine on
ServerName www.example.com
ServerAlias example.com
<If "%{HTTP_HOST} !~ /www/">
Redirect permanent "/" "https://www.%{HTTP_HOST}/"
</If>
...
</VirtualHost>
當我訪問https://example.com
它會重定向,但這次它被重定向到https://www.%{HTTP_HOST}/
而不是https://www.example.com/
。
現在如果我使用Redirect permanent "/" "https://www.example.com/"
然后https://example.com
將被重定向到https://www.example.com
所以看起來 %{HTTP_HOST} 沒有在第二個 VirtualHost 塊中被替換。
如何使它正確?
您可以嘗試使用重寫規則
RewriteEngine On
RewriteCond %{HTTP_HOST} ^https://example.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.