如何让 Apache2 重定向到子目录

如何让 Apache2 重定向到子目录

我在 Debian etch 上运行 apache2,具有多个虚拟主机。

我想重定向http://git.example.comhttp://git.example.com/git/

应该很简单,但 Google 并没有完全做到这一点。我尝试过重定向和重写功能,但它们似乎并没有达到我想要的效果...

答案1

感觉有点傻——再谷歌一下就找到了我想要的答案:

RedirectMatch ^/$ /git/

基本上重定向根,并且仅重定向根。

此代码可以在.htaccess文件中执行(有一个标签,因此我假设这是原始用例)。但如果您可以编辑主服务器 apache 配置,则将其放在您网站的部分中(可能在部分内)<VirtualHost>

RedirectMatch 的文档语境可以是“服务器配置、虚拟主机、目录、.htaccess”。

答案2

重定向已经给出了正确的答案。将所有内容重定向到其他地方时,您必须小心谨慎,因为您可能会在那里获得递归重定向。如果您想建立维护页面,就会发生这种情况。

答案3

您可以使用重定向指令。

<Directory />
   Redirect permanent / http://git.example.com/git/
   ...
</Directory>

答案4

接受的答案解决了我的问题,但我还发现我必须为不存在的页面添加 404 重定向——我的情况是 OwnCloud 安装位于根目录下一级(https://example.com/owncloud)。

这对我有用,将所有内容发送到我的子目录:

# redirect from root to subdirectory
RedirectMatch ^/$ /thesubdirectory/

# redirect on 404 to subdirectory
ErrorDocument 404 /thesubdirectory/index.php

相关内容