我設置重寫規則,以引導domain.com
流量時子目錄:的Apache的.htaccess重寫規則不包括使用以下規則來<code>www.domain.com</code>重定向非www到www網址
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
</IfModule>
從我有限的瞭解,在RewriteRule
中的$1
應匹配domain.com/
之後的任何內容,然後將其放在我重寫的網址www.domain.com/
的末尾。
例如domain.com/abc
應該變成www.domain.com/abc
。
但是,這是不起作用。如果我瀏覽到domain.com/abc
那麼這條路是不是在所有的改寫,我只是得到domain.com/abc
沒有www
。
我已經做了很多的閱讀,只是想弄清楚$1
應該照顧這個,從我的理解。
誰能解釋爲什麼它不工作,我懷疑它應該是什麼?謝謝。
這意味着這條規則是不執行的。註釋掉'IfModule'行並重新測試。 – anubhava
它也將取決於您指定的上下文。如果你的請求不符合你指定的虛擬主機,它也不會影響它,等等。然而,這是一種非常複雜的做法,在虛擬主機中指定正確的'ServerName',並設置指令'UseCanonicalName on '在虛擬主機中應該已經足夠了。 –
這是工作,除了'$ 1'。正如之前我設定這個規則我沒有得到來自'domain.com'重定向,一旦我設定這個規則我重定向到'www.domain.com'。然而,子目錄不起作用,這是混淆的地方。 – jamesmarkcook