我有一个~/Branches/
可通过 apache2 访问的文件夹localhost/~me/
。现在我localhost/~me/branches_index/web/index.php
想让它在localhost/~me/branches_index/
那么我怎样才能从文件夹重定向/~me/branches_index/
到?/~me/branches_index/web/
/Branches/branches_index/
我尝试过,但是没有成功。
无限循环:
Redirect /~me/branches_index/ /~me/branches_index/web/
放在/web/
最前面:
Redirect / /web/
答案1
您尝试的重定向失败,因为
Redirect /~me/branches_index/ /~me/branches_index/web/
将以递归方式重定向所有内容/~me/branches_index/*
。
这意味着您/~me/branches_index/what/so/ever
将被重定向,/~me/branches_index/web/what/so/ever
从而陷入无休止的循环。
.htaccess
解决方案是在文件中使用重写,保存在/~me/branches_index/
。
类似这样的代码应该可以完成工作:
RewriteEngine on
RewriteCond %{REQUEST_URI} !^(.*)web/(.*)$
RewriteRule ^(.*)$ /~me/branches_index/web/$1 [NC,L]
答案2
一种方法是将其放入 /branches_index/ 的 .htaccess 配置中
RewriteEngine On
RewriteCond %{REQUEST_URI} !^web/
RewriteRule (.*) web/$1 [QSA,L]