【问题标题】:Use mod_rewrite to create custom directory index in Apache使用 mod_rewrite 在 Apache 中创建自定义目录索引
【发布时间】:2011-02-09 01:58:21
【问题描述】:

所以,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 等),

【问题讨论】:

    标签: apache mod-rewrite directory-listing mod-autoindex


    【解决方案1】:

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

    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule .* /index.php?dir=$0
    

    【讨论】:

    • 哇,我是个工具。感谢收看这个!
    猜你喜欢
    • 2014-02-16
    • 2013-11-27
    • 1970-01-01
    • 1970-01-01
    • 2013-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-07
    相关资源
    最近更新 更多