Rhy*_*Guy 3 .htaccess redirect subdomain redirection
因此,在我的主域“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>
Run Code Online (Sandbox Code Playgroud)
这有效。当有人输入 domain.com 时,它将被重定向到 www.domain.com。但是,当有人输入 sub1.domain.com 时,他将被重定向到 www.domain.com/sub1 - 我不想要它,它需要在 sub1.domain.com 中。
我应该在 .htaccess 文件中添加什么来完成这个?
您可以排除的每个sub1,sub2单独像这样;
<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>
Run Code Online (Sandbox Code Playgroud)
或只是特定的,你只需要重定向domain.com到www.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>
Run Code Online (Sandbox Code Playgroud)