0

因此,Apache 的默认目录列表很糟糕,而 mod_autoindex 的自定义选项很糟糕,所以我想我可以在我的服务器根目录中编写一些重写规则来将任何请求重定向到目录:

<IfModule rewrite_module>
    RewriteEngine on
    RewriteCond %{REQUEST_URI} -d
    RewriteRule .* /index.php?dir=$0
</IfModule>

现在,我觉得这至少有点作用,因为关闭indexes仍然localhost可以访问(它显示 index.php),但是它似乎没有到达子目录(如果indexes选项打开,它会恢复到 Apache 的目录索引,或者403如果他们关闭,则给出一个)。

我的问题是:我可以让这条规则在全球范围内应用,还是我对漂亮目录索引的追求注定要失败?

编辑:我应该注意:上述规则包含在.htaccess服务器根目录中。

编辑:理想情况下,如果存在,解决方案仍然具有DirectoryIndex功能(也就是说,如果存在,index.php将显示等),

4

1 回答 1

2

目录测试仅适用于-d绝对文件系统路径。因此,要么提供一个绝对文件系统路径(例如通过使用%{DOCUMENT_ROOT}%{REQUEST_URI}%{REQUEST_FILENAME}直接),要么使用-D它发出额外的子请求以将 URI 路径解析为文件系统路径。我更喜欢:

RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .* /index.php?dir=$0
于 2011-02-08T17:58:21.820 回答