Назад | Перейти на главную страницу

Соответствие вывода + Indexes переписанному URL

я использую mod_rewrite для отображения /foo/bar/baz к /foo/qux с помощью

RewriteEngine on
RewriteBase /foo/
RewriteRule ^bar/baz$ bar/baz/ [L,R=permanent]
RewriteRule ^bar/baz/(.*) qux/$1 [L]

Я хочу разрешить индексы в /foo/qux, так что я Options +Indexes в /foo/qux/.htaccess.

Проблема в том, что вывод индекса читает "Index of /foo/qux"даже если для доступа к нему используется /foo/bar/baz. В идеале я бы хотел, чтобы вывод отражал используемый URL (так что либо /foo/qux или /foo/bar/baz, в зависимости). Я бы согласился на вывод, всегда говорящий "Индекс /foo/bar/baz". Есть ли способ сделать это с помощью mod_rewrite или простые варианты конфигурации Apache?

Это не чистый вариант конфигурации Apache, но в качестве альтернативы вы можете заменить перезаписи символическими ссылками в реальной файловой системе. В Linux вы должны использовать:

ln -s <target> <link_name>

Я не верю, что это возможно из-за порядка, в котором mod_rewrite и mod_autoindex обработать запрос. Путь, который mod_autoindex получает есть и должен быть "настоящим".

Обходной путь Кайла по символической ссылке - единственное известное мне решение.