将非www重定向到www,但保持其他子域不变

时间:2016-09-22 12:10:37

标签: linux apache .htaccess redirect mod-rewrite

我有5个不同域名的网页。它们中的每一个都使用相同的目录和相同的.htaccess文件。我已使用以下行将non www个网址重定向到www

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

现在我想继续将非www重定向到www,但我还想保留其他没有www的子域名。例如: domain1.com应重定向到www.domain1.comsubdomain1.domain1.com仍应为subdomain1.domain1.com,不应重定向到www.subdomain1.domain1.com

请记住,我有5个从同一目录托管的网页,还有更多内容。每次添加页面时,我都不想更改.htaccess文件。

我不想弄乱我的.htaccess文件,所以我需要你的帮助!

PS:是否有可能考虑https。 https://domain.comhttps://www.domain.com http://domain.comhttp://www.domain.com https://sub.domain.comhttps://sub.domain.com http://sub.domain.comhttp://sub.domain.com

提前感谢您的回答!

1 个答案:

答案 0 :(得分:1)

只需定位您的主域规则:

RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$ [NC]
RewriteCond %{HTTPS}s on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTPS}s on(s)|%1用于在目标网址中维护http/https

确保在测试此更改时清除浏览器缓存。