我想有漂亮的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中的完整路径