0

我有多个域名指向一个 Apache2 虚拟主机:

ServerName domain1.com
ServerAlias domain2.com
ServerAlias domain3.com

为了始终显示相同的 url,我使用了这样的重写器:

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,浏览器中显示的 url 将是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

有没有聪明的方法来实现我想要的?感谢您的任何提示!

4

2 回答 2

1

您真的需要在域重定向上添加查询字符串 (QSA) 吗?

在没有它的情况下尝试你的规则:

RewriteRule (.*) http://domain1.com/$1 [R=301]
于 2012-05-26T13:40:03.860 回答
1

如果您有权访问文档根目录,则解决方案是创建符号链接:

ln -s /<path to application> /<document root>/foo
于 2013-09-03T18:27:15.190 回答