apache - 别名和重写器一起工作

我有多个域名指向一个 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

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

最佳答案

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

ln -s /<path to application> /<document root>/foo

https://stackoverflow.com/questions/10766218/

相关文章:

c++ - 为什么在单独的循环中元素加法比在组合循环中快得多?

c++ - 常规转换与 static_cast 与 dynamic_cast

c++ - #include 和 #include "filename"有什么

c++ - 显式关键字是什么意思?

c++ - 如何设置、清除和切换单个位?

asp.net - Mod Rewrite MS Hosting 通过显示短 URL 隐藏长烦人的

c++ - 什么时候应该使用 static_cast、dynamic_cast、const_cast

c++ - 如何迭代字符串的单词?

firebase - 如果 url 包含 '#',如何使用 google firebase 动态链接

c++ - 什么是智能指针,我应该什么时候使用它?