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-файл.