从www.domain.comredirect到http://domain.com,在Apache中没有.htaccess?

在我的旧主机上,当添加一个域时,我可以select是否我想要http://www.domain http://domain或两者(例如,如果我selectwww.domain,它会redirecthttp://domai n到http://www.com 。)

这是可能的,而不需要编辑.htaccess? 像在vosts.conf?

另外,如果通过.htaccess来做,最好的方法是什么?

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

? 我读过,没有第一行,http / 1.0浏览器将失败(因为他们不包括头中的主机)

如果您对SSL没有做任何事情,那么您应该可以使用基于名称的虚拟主机来发出redirect。 一个虚拟主机将是所需的,另一个将是您的redirect。

 <VirtualHost XXX.XXX.XXX.XXX> ServerName old.com ServerAlias www.old.com Redirect permanent / http://www.new.com/ </VirtualHost> <VirtualHost XXX.XXX.XXX.XXX> ServerName www.new.com <Directory /var/www/www.new.com> </Directory> </VirtualHost> 

请参阅以下网站上的#6: http : //www.yolinux.com/TUTORIALS/ApacheRedirect.html

任何你可以放在.htaccess中的东西,你也可以放在VirtualHostconfiguration文件的<Directory/>节中,用于你想改变的网站.htaccess只是一个快捷方式。

例如,你可以像这样扩展一个Virtualhost指令:

 <VirtualHost xxxx:80> ServerName something.com ErrorLog logs/something.com-error.log ###### Add the 5 lines below.... ###### <Directory /var/www/something.com/html> RewriteCond %{HTTP_HOST} . RewriteCond %{HTTP_HOST} !^www\.example\.com [NC] RewriteRule (.*) http://www.example.com/$1 [R=301,L] </Directory> </VirtualHost> 

正如你所提到的“vhost.conf”,我假设你正在使用一个Plesk服务器,在这种情况下,你可以把<Directory/>节添加到vhost.conf中(记住修复你网站httpdocs目录的path。

请记住,之后运行/usr/local/psa/admin/bin/websrvmng -a ,然后重新启动Apache。