我在 Debian etch 上运行 apache2,具有多个虚拟主机。
我想重定向http://git.example.com
到http://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