Apache 重写目录索引
Posted
技术标签:
【中文标题】Apache 重写目录索引【英文标题】:Apache Rewrite Directory Index 【发布时间】:2015-02-25 03:40:26 【问题描述】:基本上,如果用户代理字符串包含某些内容,那么我希望 DirectoryIndex 被忽略。这似乎根本不起作用。
【问题讨论】:
“DirectoryIndex 要被忽略”是什么意思?你显然不能忽视它,但你可以采取措施绕过它的作用。当用户代理包含“Kodi”时,您是否有您想要的行为示例? 对不起,我的意思是在查看上面的目录索引时,我只希望“/_h5ai/server/php/index.php”部分对非“Kodi”用户生效-代理字符串。 我只希望“/_h5ai/server/php/index.php”部分对非“Kodi”用户代理字符串生效。 i>,您在 htaccess 文件中的条件完全相反。 嗯,我不确定是怎么回事。我知道我错了,但我看到它的方式是检查 Kodi 代理字符串,然后将“/_h5ai/server/php/index.php”请求重写为 / 该规则在选择目录索引之前应用,并且仅当目录不包含 index.html 或 index.php 时才会使用 h5ai 目录索引。您不能任意忽略 DirectoryIndex 指令的部分内容 【参考方案1】:你可以试试这样的:
DirectoryIndex index.html index.php
RewriteEngine On
RewriteCond %HTTP_USER_AGENT !Kodi [NC]
RewriteCond %REQUEST_FILENAME -d
RewriteRule ^ /_h5ai/server/php/index.php [L,QSA]
【讨论】:
以上是关于Apache 重写目录索引的主要内容,如果未能解决你的问题,请参考以下文章
apache mod_rewrite:如何根据其他目录中的文件存在为同一目录添加不同的重写规则?
Apache Rewrite(mod_rewrite)无法重写,如果目录名与root下的另一个目录相同,例如Linux上的“lib”