я использую 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
получает есть и должен быть "настоящим".
Обходной путь Кайла по символической ссылке - единственное известное мне решение.