mod_autoindex隐藏用于mod_proxy的目录

时间:2012-08-18 00:09:34

标签: apache proxy indexing mod-proxy mod-autoindex

我确实使用mod_proxy设置了两个代理。但是,当我使用mod_autoindex列出根目录中的所有目录时,它不会显示与代理名称相同的其他存在且空的虚拟目录,即使我使用ShowForbidden也不行。

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

ProxyPass /jenkins/ http://localhost:8080/jenkins/
ProxyPassReverse /jenkins/ http://localhost:8080/jenkins/

ProxyPass /redmine/ http://localhost:81/redmine/
ProxyPassReverse /redmine/ http://localhost:81/redmine/

<Directory />
    AllowOverride All
    Order Allow,Deny
    Allow from All
    Options -ExecCGI +FollowSymLinks +IncludesNOEXEC +Indexes +MultiViews -SymLinksIfOwnerMatch
    IndexOptions Charset=UTF-8 Type=text/html DescriptionWidth=* FancyIndexing FoldersFirst HTMLTable IconsAreLinks IgnoreCase NameWidth=* ShowForbidden VersionSort XHTML
</Directory>

有没有办法强制mod_autoindex显示这些目录,以及代理的链接?

2 个答案:

答案 0 :(得分:1)

自动索引无法向您显示由反向代理或别名或类似内容定义的URI。请求的URI通过URI到文件的映射管道,一大堆模块得到应用,最后你得到一个响应(希望)内容服务。 Mod_autoindex仅查看目录中最终位于URI到文件处理管道末尾的物理文件,因此您将别名或定义为反向代理的任何内容都不会显示在该自动索引列表中,因为它们不是文件系统上的物理文件/目录。

我认为有一种无痛的方法可以让自动索引目录列表也包含别名或反向代理。更痛苦的方法是编写自定义脚本来生成索引列表并包含自定义别名和反向代理。

答案 1 :(得分:0)

嗯,我管理的最简单的解决方案是创建一个/ jenkins_ /目录并使用mod_rewrite将其重定向到/ jenkins /。

RewriteEngine on
RewriteBase /jenkins_/
RewriteRule ^(.*)$ /jenkins/$1 [R]

这不是我想要的但是接近。