簡體   English   中英

RewriteCond%{SERVER_NAME}語法

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

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