symfony app_dev.php в папке вне корня документа

Я обновляю устаревшее веб-приложение, заменяя его части Symfony.

Структура моей папки:

/symfony            <---symfony install
/trunk              <---document root

Корнем документа является ствол /, поэтому изменения в устаревшем приложении минимальны.

В моей конфигурации виртуального хоста у меня есть:

<VirtualHost *:80>
ServerName webapp.example.com

DocumentRoot /path/to/project/trunk

Alias /ajax ../symfony/web
Alias /app_dev.php/ ../symfony/web/app_dev.php

</VirtualHost>

Запрос к webapp.example.com/ajax работает

Однако запрос к webapp.example.com/app_dev.php/ajax приводит к ошибке 404.

Обратите внимание, что мне нужно переписать только пути, начинающиеся с /app_dev.php/, т.е. включить косую черту.

1

Решение

РЕДАКТИРОВАТЬ

Это ссылка на документацию Apache
http://httpd.apache.org/docs/2.4/mod/mod_alias.html#alias

Проблема, кажется, в конце второго слэша Alias директива

Попробуйте изменить это:

Alias /app_dev.php/ ../symfony/web/app_dev.php

к этому:

Alias "/app_dev.php" "../symfony/web/app_dev.php"

Из документов:

Note that if you include a trailing / on the URL-path then the server will require a trailing / in order to expand the alias. That is, if you use

Alias "/icons/" "/usr/local/apache/icons/"then the URL /icons will not be aliased, as it lacks that trailing /. Likewise, if you omit the slash on the URL-path then you must also omit it from the file-path.

Если это не сработает, попробуйте удалить второй Alias директива, так как вы уже указываете на папку symfony / web с URL-путем / ajax.

1

Другие решения

В соответствии с
http://httpd.apache.org/docs/2.4/mod/mod_alias.html#alias

«Совпадают только полные сегменты пути»

что означает, что я не могу использовать псевдоним для перезаписи файла app_dev.php.

Вместо этого необходимо использовать Aliasmatch. Также кажется, что он не поддерживает относительные пути, по крайней мере, на Apache 2.4.10, но я не смог найти документацию по этому вопросу.

<VirtualHost *:80>
ServerName webapp.example.com

DocumentRoot /path/to/project/trunk

Alias "/ajax" "../symfony/web"AliasMatch "^/app_dev.php/(.*)" "/path/to/project/symfony/web/app_dev.php/$1"
</VirtualHost>
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector