使 +Indexes 的输出与重写的 URL 匹配

使 +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即使用于访问它的 URL 是 ,索引输出也会显示“ ” /foo/bar/baz。理想情况下,我希望输出反映所使用的 URL(因此要么是/foo/qux,要么是/foo/bar/baz,视情况而定)。我满足于输出始终显示“索引/foo/bar/baz”。有没有办法使用mod_rewrite或普通的 Apache 配置选项来实现这一点?

答案1

这不是纯粹的 Apache 配置选项,但作为替代方案,你可以用实际文件系统上的符号链接替换 ​​Rewrites。在 Linux 中,你可以使用:

ln -s <target> <link_name>

答案2

mod_rewrite我认为这是不可能的,因为处理请求的顺序mod_autoindex。接收的路径mod_autoindex必须是“真实”的。

Kyle 的符号链接解决方法是我所知道的唯一解决方案。

相关内容