htaccess 重定向 URI 到父目录

max*_*022 5 apache .htaccess mod-rewrite web-hosting symfony

我有一个网站托管在/var/www/thesite(apache 服务器)中,它是一个Symfony2网站,所以在这个文件夹中我有一个web我的虚拟主机指向的文件夹。

所以我的虚拟主机是 www.mysite.com -> /var/www/thesite/web

在这个 web 文件夹中,我有一个.htaccess很好地格式化 URL。

现在,我在 中添加了一个 API /var/www/thesite/api,该 API 是使用Silex. 我想将所有请求重定向http://www.mysite.com/api到这个新框架。

所以我添加了 /var/www/thesite/web/.htaccess

RewriteCond %{REQUEST_URI} ^/api
RewriteRule ^api(.*)$ ../api/web/index.php [NC,QSA,L]
Run Code Online (Sandbox Code Playgroud)

但我得到:

错误的请求

您的浏览器发送了此服务器无法理解的请求。

我不确定是否可以访问.htaccess. 我不想更改我的虚拟主机目标目录以避免安全漏洞。

我该如何解决这个问题?

Jon*_*Lin 6

你不能路由请求网站的文档根目录,这是/var/www/thesite/web。所以你不能访问/var/www/thesite//var/www/thesite/api/var/www/thesite/web目录内部。400 Bad 请求是因为../api/您的规则目标的位。

您可以尝试做的只是使用 php 来包含/要求 api 的 index.php:

RewriteRule ^api/(.*)$ /index_api.php [L]
Run Code Online (Sandbox Code Playgroud)

并且在index_api.php您可以包含或要求“../api/web/index.php”文件中。