Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache htaccess将URI重定向到父目录_Apache_.htaccess_Symfony_Mod Rewrite_Web Hosting - Fatal编程技术网

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
是可以公开访问的。您不希望您的源代码可以访问。