[英]apache httpd - RewriteCond SERVER_NAME not equal to SERVER_ADDR
[英]RewriteCond %{SERVER_NAME} syntax
我正在嘗試了解以下語法(請參見下面的用法上下文):
RewriteCond %{SERVER_NAME} ^example\.com$
我的.htaccess文件中包含上述內容(以真實域名代替)。 我想將其設置為www.example.com。
該網站具有SSL,並且GoDaddy的SSL安裝過程添加了以下SSL編碼。 因此,我嘗試使用此編碼,並更改為使用SSL強制使用www。
# BEGIN GD-SSL
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_USER_AGENT} ^(.+)$
RewriteCond %{SERVER_NAME} ^example\.com$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
Header add Strict-Transport-Security "max-age=300"
</IfModule>
# END GD-SSL
我試圖添加mod重寫規則以強制www,但它們不起作用。 我認為問題出在RewriteCond%{SERVER_NAME} ^ example.com $所在的地方,它無法解析為“ www”。 我以為我可能需要添加www。 但是,我不確定這是否正確。
這是更改SSL強制URL中的WWW的解決方案嗎? 還是我需要完全做其他事情?
RewriteCond %{SERVER_NAME} ^www\.^example\.com$
任何幫助將不勝感激。 謝謝。
貝基
要在一行中同時匹配www和非www主機,可以使用以下正則表達式模式:
^(www\.)?example\.com$
這與www.example.com或example.com匹配。
要強制ssl www,可以使用以下命令:
RewriteEngine on
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$
RewriteRule (.*) https://www.example.com/$1 [L,R,NE]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.