Apache mod_rewrite – 优先考虑具有相当URL的目录上的文件

我想有漂亮的url,所以http://www.domain.com/foo将返回http://www.domain.com/foo.php

问题是有一个目录具有相同的名称。 我有另一个页面http://www.domain.com/foo/bar/baz ,现在我的服务器只是返回foo的目录列表,当我请求http://www.domain.com/foo

伪代码:
如果请求加上“.php”是一个文件
重写出文件而不是目录

实际代码:

RewriteEngine On RewriteBase / RewriteCond %{SCRIPT_FILENAME}\.php -f RewriteRule (.*) $1.php [NC,L] 

MultiViews可能导致这种行为。 尝试禁用它。

你需要使用整个路径:

 RewriteCond "%{DOCUMENT_ROOT}%{REQUEST_FILENAME}.php" -f 

REQUEST_FILENAME只是DocumenRoot中的完整路径