.htaccess 如何使用htaccess在多个域上强制访问www

.htaccess 如何使用htaccess在多个域上强制访问www,.htaccess,.htaccess,基本上,我在我的Web服务器上有一个文件夹,每当我购买新域名时,我都会将该文件夹分配给它们,它只有一个index.html和一个images文件夹。它基本上只是有我的标志,并说该领域正在建设和即将到来 通常,当我想强制使用www.prefix时,我使用以下代码: rewritecond %{HTTP_HOST} ^domain.com [nc] rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc] 这很好,但我需要明确写出域名。我处理很多

基本上,我在我的Web服务器上有一个文件夹,每当我购买新域名时,我都会将该文件夹分配给它们,它只有一个index.html和一个images文件夹。它基本上只是有我的标志,并说该领域正在建设和即将到来

通常,当我想强制使用www.prefix时,我使用以下代码:

rewritecond %{HTTP_HOST} ^domain.com [nc]
rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]
这很好,但我需要明确写出域名。我处理很多领域,所以我需要的代码,将做到这一点,而不知道域名。我试了一下,但老实说,没有人接近我。

试试这个:

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
这会将“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个以上字符的域