Mod rewrite mod将非www重写为www时遇到问题

Mod rewrite mod将非www重写为www时遇到问题,mod-rewrite,Mod Rewrite,有人能帮我吗 RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC] RewriteRule ^(.*)$ http://www.$1 [R=301,L] 我试图做的是创建一个重写规则,如果您尝试使用非www版本进行连接,它会将您发送到站点的www版本 条件有效,但规则无效,它将我发送到http:// 谁能建议我修一下这个。 我期望在^到^之间,在上述条件下,1美元=一切$ 谢谢不要使用HTTP\u主机 这样做: RewriteCond %{SERVER_NAME

有人能帮我吗

RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://www.$1 [R=301,L]
我试图做的是创建一个重写规则,如果您尝试使用非www版本进行连接,它会将您发送到站点的www版本

条件有效,但规则无效,它将我发送到http:// 谁能建议我修一下这个。 我期望在^到^之间,在上述条件下,1美元=一切$
谢谢

不要使用
HTTP\u主机

这样做:

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

其中
%1
与以前的
RewriteCond

中的分组匹配感谢您的帮助,Linus。我试过了,但如果我向它发送一个非www的url,它会将我发送到。另外,如果%1与分组匹配,$1做什么?再次感谢。@Columbo我在编辑中为整个
%{SERVER\u NAME}
添加了一个显式匹配。现在可以了。对此很抱歉。再次感谢,这确实解决了域名本身的问题,但如果我添加了一个页面,它不会。例如,www.domain.com/page.php可以工作,但domain.com/page.php不能。服务器名称(.*)似乎没有选择路径。@Columbo这是我给出的草率回答。请查看我的重复编辑。如果您的域和vhost已启用通配符,请小心。转到www.blah.org将重定向到www.ww.blah.org。我不知道在这种情况下有任何规则不使用完整的域名。