【发布时间】:2010-02-08 00:27:32
【问题描述】:
我正在构建一个具有相当复杂规则集的.htaccess 文件。
基本的重写规则之一是第一行:
如果请求的文件物理存在,不重写,停止处理规则。
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule . - [L]
这很好用,但有一个例外:当我访问带有 斜杠 的目录时
www.example.com/directory/
directory 不会被识别为存在,而
www.example.com/directory
会的。
如何让 Apache 识别带有斜杠的现有目录?
背景信息,我已经添加斜杠到每个没有请求的请求(以满足/directory 和/directory/ 请求。
【问题讨论】:
-
准确地说:
/foobar/不是指名为 foobar 的目录,而是指目录 foobar 中的索引文档。如果请求/foobar/,Apache 正在执行子请求。只有/foobar确实引用了名为 foobar 的目录。 -
@Gumbo 好点。所以我可能别无选择,只能在内部处理中剃掉尾部的斜线。会试试的。
-
您可以使用 mod_rewrite 的日志记录功能(请参阅
RewriteLogLevel)查看您的请求是如何处理的。
标签: apache .htaccess mod-rewrite