我有一个托管在/var/www/thesite
(apache服务器)的网站,它是一个Symfony2
网站,所以在这个文件夹中我有一个web
文件夹,我的虚拟主机指向该文件夹。
所以我的虚拟主机是www.mysite.com -> /var/www/thesite/web
在这个网络文件夹中,我有一个.htaccess
来很好地格式化网址。
现在,我已在/var/www/thesite/api
中添加了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]
但我明白了:
错误请求
您的浏览器发送了此服务器无法理解的请求。
我不确定我是否可以访问.htaccess
中的父文件夹。我不想更改我的虚拟主机目标目录以避免安全漏洞。
我该如何解决这个问题?
答案 0 :(得分:3)
您无法将请求路由到网站文档根目录的外部,即/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]
在index_api.php
中,您可以包含或要求“../api/web/index.php”文件。