Apache htaccess将URI重定向到父目录
我有一个网站托管在Apache htaccess将URI重定向到父目录,apache,.htaccess,symfony,mod-rewrite,web-hosting,Apache,.htaccess,Symfony,Mod Rewrite,Web Hosting,我有一个网站托管在/var/www/thesite(apache服务器)中,它是一个Symfony2网站,所以在这个文件夹中我有一个web文件夹,我的虚拟主机指向该文件夹 所以我的虚拟主机是www.mysite.com->/var/www/thesite/web 在这个web文件夹中,我有一个.htaccess,可以很好地格式化URL 现在,我在/var/www/thesite/API中添加了一个API,该API是使用Silex实现的。 我想重定向所有请求http://www.mysite.co
/var/www/thesite
(apache服务器)中,它是一个Symfony2
网站,所以在这个文件夹中我有一个web
文件夹,我的虚拟主机指向该文件夹
所以我的虚拟主机是www.mysite.com->/var/www/thesite/web
在这个web文件夹中,我有一个.htaccess
,可以很好地格式化URL
现在,我在/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
中的父文件夹。我不想更改virtualhost目标目录以避免安全漏洞
如何解决此问题?您不能将请求路由到站点文档根目录之外,即
/var/www/thesite/web
。因此,您无法从/var/www/thesite/web
目录中访问/var/www/thesite/api
。400错误请求是因为规则目标的。/api/
位
您可以尝试使用php包含/要求api的index.php:
RewriteRule ^api/(.*)$ /index_api.php [L]
在
index_api.php
中,您可以包含或需要“./api/web/index.php”文件。为什么不能将api
移动到/var/www/thesite/web
下?@anubhava,因为web
是可以公开访问的。您不希望您的源代码可以访问。