В качестве примера я обращаюсь к проекту foo
по адресу https://localhost/projects/foo/dev/
.Apache alias/rewrite в подкаталог без перенаправления
Я хотел бы переписать URL, так что https://localhost/projects/foo/
указывает на projects/foo/dev/
в моей папке DocumentRoot
Это должно не быть HTTP 3xx Перенаправление. Кроме того, dev1
, dev2
и т. Д. Не должны быть доступны (если нет каталогов внутри dev
с этими именами, но это маловероятно). Конечно, остальная часть пути, а также строки запроса и фрагментов необходимо сохранить, например:
projects/foo/dev/assets/js/jquery.min.js -> https://localhost/projects/foo/assets/js/jquery.min.js
Это моя структура каталогов в моей папке DocumentRoot:
- проекты/
- Foo/
- DEV/
- dev1/
- DEV2/
- dev3/
- бар/
- DEV/
- dev1/
- DEV2/
- и так далее ...
- Foo/
Я пробовал ответ, размещенный в this question, но он не вступает в силу даже после перезапуска Apache.
Я также попытался это, который кажется правильным, но дает мне HTTP 500 с некоторой бесконечной перенаправляет ошибки в error.log
:
RewriteEngine on
RewriteRule ^(.*)$ src/$1 [L,QSA]
Я только иметь доступ внутри каждой директории проекта (например, foo
и bar
) и родительский каталог не может называться projects
на других машинах. Поэтому это нужно делать в файлах htaccess, а не httpd.conf.