htaccess将URI重定向到父目录

时间:2014-01-24 04:31:03

标签: apache .htaccess symfony mod-rewrite web-hosting

我有一个托管在/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中的父文件夹。我不想更改我的虚拟主机目标目录以避免安全漏洞。

我该如何解决这个问题?

1 个答案:

答案 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”文件。