我如何使用htaccess强制www。在多个域上

时间:2009-03-15 20:51:33

标签: .htaccess

基本上我的网络服务器上有一个文件夹,只要我购买了只有index.html和images文件夹的文件夹,我就分配给新域名。它基本上只有我的标识,并表示该域正在建设中,即将推出。

通常我想强行使用www。前缀我使用以下代码:

rewritecond %{HTTP_HOST} ^domain.com [nc]
rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]

这很好但是我需要明确地写出域的名称。我处理了很多域名,因此我需要能够在不知道域名的情况下执行此操作的代码。我试了一下,老实说没有人在哪附近。

2 个答案:

答案 0 :(得分:9)

试试这个:

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

答案 1 :(得分:2)

这会将“ftp.domain.com”重定向到“www.ftp.domain.com”。可能不是你想要的。

这可能需要一些修改,但我决定写自己的,所以你去:

RewriteCond %{HTTP_HOST} !^%{SERVER_ADDR}$ [NC]
RewriteCond %{HTTP_HOST} !\.dev$ [NC]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ([^\.]+(\.[^\.0-9]{2,4}){1,2})$ [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=permanent,L]

它应该支持单字和双字TLD,通过IP地址访问,以及DOMAIN.dev用于本地开发。适用于4个以上字符的域名。