我拥有两个域名:
...我无法确定如何最好地设置vhost代码以实现一些目标:
domain.net
domain.net
(没有www )domain.com/file.php
最终转到domain.net/file.php
www.domain.com/deeper/path/
最终转到domain.net/deeper/path/
www.domain.net
最终转到domain.net
我在this Q/A entry中看到,我相信是我需要的东西,但我并非百分之百确定。有人可以确认(或纠正)这完全符合我的要求:
<VirtualHost *:80>
ServerName domain.net
ServerAlias www.domain.net domain.com www.domain.com
(the rest of the settings here)
</VirtualHost>
......就这么简单吗?
答案 0 :(得分:3)
按原样,您的vhost将接受您的别名并使用正确的文件进行响应,但不会重定向请求。如果您想要一个规范的子域,您可能需要添加一些重写规则:
<VirtualHost *:80>
ServerName domain.net
ServerAlias www.domain.net domain.com www.domain.com
RewriteEngine On
RewriteCond %{HTTP_HOST} !^domain\.net [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/(.*) http://domain.net/$1 [L,R=301]
(the rest of the settings here)
</VirtualHost>
检查http://httpd.apache.org/docs/2.0/rewrite/rewrite_guide.html#canonicalhost以获取进一步说明