Dot-Htaccess
將 www 添加到域,但不添加到特定域
我的
.htaccess
文件中有以下程式碼:RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
上面的程式碼用於添加
www
到域,如果它沒有www
. 但是我有一個域,例如:(myloadbalancername-432566808.us-west-1.elb.amazonaws.com
來自 AWS Elastic Load Balancer 的 DNS)並且該域不適用於www
. 那麼,除了特定域之外,如何www
為所有域請求添加?RewriteCond %{REQUEST_URI} !myloadbalancername RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
我嘗試使用上面的程式碼,檢查域名是否沒有單詞,然後檢查域是否沒有
www
,但沒有成功。我是初學者,.htaccess
所以我不知道我做錯了什麼。
與您的其他條件一樣,檢查host
www
中是否存在,您需要再次檢查server 變數,而不是- 它僅包含 URL 路徑。HTTP_HOST``REQUEST_URI
嘗試以下操作:
RewriteCond %{HTTP_HOST} !^myloadbalancername RewriteCond %{HTTP_HOST} !^www\. RewriteRule (.*) http://www.%{HTTP_HOST}/$1 [R=301,L]
我還添加了字元串錨點 (
^
) 的開頭,因此如果它會失敗(更有效),它將更快地失敗,而不是在主機字元串中的任何位置搜尋“myloadbalancername”。^(.*)$
此外,如果您要擷取整個模式(例如,與 相同) ,則無需包含錨點(.*)
。在測試之前清除所有中間記憶體,因為瀏覽器會記憶體任何錯誤的 301。