提问人:Andrew G. Johnson 提问时间:3/16/2009 更新时间:12/10/2010 访问量:1999
如何使用 htaccess 强制 www.在多个域上
How can I use htaccess to force www. on multiple domains
问:
基本上,我的网络服务器上有一个文件夹,每当我购买新域时,我都会将其分配给只有索引.html和图像文件夹的新域。它基本上只是有我的徽标,并说该域名正在建设中,即将推出。
通常,当我想强制 www.前缀我使用以下代码:
rewritecond %{HTTP_HOST} ^domain.com [nc]
rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]
这工作正常,但是我需要明确写出域的名称。我处理了很多域名,所以我需要代码来做到这一点,而不需要知道域名。我试了一下,但老实说,没有人靠近。
答:
9赞
Gumbo
3/16/2009
#1
试试这个:
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
2赞
Eso
12/10/2010
#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]
它应该支持一个词和两个词的顶级域名,通过IP地址访问,以及 DOMAIN.dev 本地开发。适用于具有 4+ 个字符的域。
评论