Dot-Htaccess

.htaccess - 將非 www 重定向到 www 並保留子域不重定向

  • March 31, 2016

因此,在我的主域“domain.com”上,我從 cPanel 創建了幾個子域,例如“sub1.domain.com”和“sub2.domain.com”。它們在伺服器上的真實位置在“domain.com/sub1”和“domain.com/sub2”中。

現在,我想用 .htaccess 將非 www 重定向到 www,這就是我目前所擁有的:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.domain\.com [NC]
RewriteRule ^(.*) http://www.domain.com/$1 [L,R=301]
</IfModule>

這行得通。當有人輸入 domain.com 時,它將被重定向到 www.domain.com。但是,當有人輸入 sub1.domain.com 時,他將被重定向到 www.domain.com/sub1 - 我不想要,它需要在 sub1.domain.com 中。

我應該在 .htaccess 文件中添加什麼來完成此操作?

您可以像這樣單獨排除每個sub1sub2

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{HTTP_HOST} ^sub1\.domain\.com [NC]
RewriteRule ^(.*) - [L]

RewriteCond %{HTTP_HOST} ^sub2\.domain\.com [NC]
RewriteRule ^(.*) - [L]

RewriteCond %{HTTP_HOST} !^www\.domain\.com [NC]
RewriteRule ^(.*) http://www.domain.com/$1 [L,R=301]
</IfModule>

或者只是具體說明您只想重定向domain.comwww.domain.com``RewriteCond

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{HTTP_HOST} ^domain\.com [NC]
RewriteRule ^(.*) http://www.domain.com/$1 [L,R=301]
</IfModule>

引用自:https://serverfault.com/questions/391843