2011-02-06 81 views
0

所以自定义目录索引,Apache默认的目录列表吮吸和mod_autoindex的自定义选项吸,所以我想我可以写在我的服务器的根目录重定向到一个目录的任何请求一些重写规则:使用mod_rewrite创建Apache中

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

现在,我得到的印象是这个作品至少有一点关闭,indexes仍然可以访问localhost(它显示index.php),但是它似乎没有达到子目录(这要么恢复到Apache的目录索引如果indexes选项开启,或者在403关闭的情况下)。

我的问题是:我可以得到这个规则适用于全球或我的追求漂亮的目录索引注定要失败?

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

编辑:理想的解决方案,如果存在的话,还是会有DirectoryIndex功能(即,index.php等。如果存在的话会显示),

回答

2

-d目录测试并只与绝对文件工作系统路径。因此,要么提供绝对文件系统路径(例如,直接使用%{DOCUMENT_ROOT}%{REQUEST_URI}%{REQUEST_FILENAME}),要么使用-D,这会产生额外的子请求来解析文件系统路径的URI路径。我更喜欢:

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

哇,我是一个工具。感谢您抓住这个! – connec 2011-02-08 21:18:55