我似乎有一个我一直在努力解决的问题。我想在这里得到一点帮助。我有一个转储站点,我正在使用mod_autoindex
和FancyIndexing
.
我在我的文件FancyIndexing
中定义了我的图标。.htaccess
我还使用mod_rewrite
通过几个 php 脚本(取决于文件扩展名)传递文件。
一切都很好,除了当文件扩展名匹配时RewriteRule
,Apache 只显示它的默认图标,而不是指定的图标。
所有FancyIndexing
资源都在/imgindex
目录上,所有查看者都在/viewers
目录上。
这是.htaccess
文件的相关部分(我目前正在调整它,所以它没有优化):
Options +Indexes
IndexOptions +XHTML +HTMLTable +FancyIndexing +FoldersFirst +SuppressHTMLPreamble +IconsAreLinks +IgnoreCase +NameWidth=*
IndexIgnore *~ imgindex viewers favicon.ico
HeaderName /imgindex/header.html
ReadmeName /imgindex/footer.html
# ------ Fancy Indexing ----------
AddIcon /imgindex/image.png .jpg .jp2 .jif .jpeg .tiff .tif .pict .pct .bmp .gif .png .psd .tga .ai .indd .fh* .fh10 .xcf .svg
AddIcon /imgindex/app.png .app
AddIcon /imgindex/movie.png .mov .mpg .mpeg .m2v .avi .divx .xvid .swf .wmv .wma .wm* .ram .rm .ogm .ogv
AddIcon /imgindex/txt.png .txt .text .log
# etc, etc.
DefaultIcon /imgindex/text.png
# ------ Rewriting --------
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^viewers/(.*)$
RewriteCond %{REQUEST_URI} !^imgindex/(.*)$
RewriteRule ^(.*).(css|cs|cpp|h|hpp|pas|xml|js|asm|inc|as|sh|bat|cmd|html)$ /viewers/view_source.php?file=$1.$2&%{QUERY_STRING} [NC,L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^viewers/(.*)$
RewriteCond %{REQUEST_URI} !^imgindex/(.*)$
RewriteRule ^(.*).(jpg)$ /viewers/viewjpg.php?file=$1.$2&%{QUERY_STRING} [NC,L]
# (etc, etc.)
正如我所说,一切似乎都很好,除了图标。在上述情况下,所有.css, .cs, .cpp
、(等)和所有.jpg
文件都将使用 中定义的图标DefaultIcon
,而不是其文件类型(定义在 中AddIcon
)的图标。
如果我删除RewriteRule
与该文件类型匹配的文件,则会显示正确的图标。
这是正常的预期行为吗?如果是这样,有什么方法可以覆盖它?
问候,