htaccess перенаправляет URI в родительский каталог
У меня есть веб-сайт, размещенный в /var/www/thesite
(сервер apache), это веб-сайт Symfony2
, поэтому внутри этой папки у меня есть папка web
, на которую указывает мой виртуальный хост.
Итак, мой виртуальный хост www.mysite.com -> /var/www/thesite/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]
Но я получаю:
Плохой Запрос
Ваш браузер отправил запрос, который этот сервер не смог понять.
Я не уверен, что могу получить доступ к родительской папке в .htaccess
. Я не хочу изменять свой каталог virtualhost target, чтобы избежать нарушения безопасности.
Как я могу решить эту проблему?
1 ответ:
Вы не можете направить запрос ввне корневого документа сайта, который является
/var/www/thesite/web
. Таким образом, вы не можете получить доступ к/var/www/thesite/
или/var/www/thesite/api
из каталога/var/www/thesite/web
. Неверный запрос 400 вызван битом../api/
цели вашего правила.То, что вы можете попробовать сделать, - это просто использовать php для включения/требования индекса api.php:
RewriteRule ^api/(.*)$ /index_api.php [L]
И в
index_api.php
Вы можете включить или потребовать "../ api / web / index.PHP-файл.