我有多个域名指向一个Apache2虚拟主机:
ServerName domain1.com
ServerAlias domain2.com
ServerAlias domain3.com
要始终显示相同的网址,我使用这样的重写:
RewriteCond %{HTTP_HOST} !^domain1.com [NC]
RewriteRule (.*) http://domain1.com/$1 [R=301,QSA,L]
最后我有一个这样的别名:
Alias /niceurl /long/path/to/index.php
一切正常,但当用户访问domain2.com/niceurl/foo
时,浏览器中显示的网址将为domain1.com/path/to/index.php/foo
,而不是domain1.com/niceurl/foo
我应该补充一点,其他案例的工作方式与预期相符,换句话说:
domain2.com/foo => domain1.com/foo
domain1.com/shorturl/bar => domain1.com/shorturl/bar
有没有一种聪明的方法来实现我想要的?谢谢你的任何提示!
答案 0 :(得分:1)
您是否真的需要在域重定向上使用查询字符串附加(QSA)?
在没有它的情况下尝试你的规则:
RewriteRule (.*) http://domain1.com/$1 [R=301]
答案 1 :(得分:0)
解决方案是创建符号链接,如果您有权访问文档根目录:
ln -s /<path to application> /<document root>/foo