Например, я получаю доступ к проекту foo
в https://localhost/projects/foo/dev/
.
Я хочу переписать 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:
- projects/
- foo/
- dev/
- dev1/
- dev2/
- dev3/
- bar/
- dev/
- dev1/
- dev2/
- и так далее...
- foo/
Я попробовал ответ, размещенный в этот вопрос, но он не принимает эффект даже после перезапуска Apache.
Я также пробовал это, что кажется правильным, но дает мне HTTP 500 с некоторой ошибкой бесконечного перенаправления в error.log
:
RewriteEngine on
RewriteRule ^(.*)$ src/$1 [L,QSA]
У меня есть доступ только внутри каждого каталога проекта (например, foo
и bar
), и родительский каталог не может называться projects
на других машинах. Поэтому это нужно делать в файлах htaccess, а не в httpd.conf.