除其他条件外,我在我的htaccess文件中添加了以下内容
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^'.]+)$ $1.php [NC,L]
问题是,我想访问我的/blog
目录,通过domain.com/blog
,但我得到一个domain.com/blog/.php
没有找到。
如何解决这个问题?
你的规则不应该像你现在做的那样,只在每个非文件,非目录请求之后.php
。
将你的规则替换为:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]
此规则将首先检查.php
文件是否存在
将此规则添加到其他规则之前:
RewriteRule ^(blog)($|/) - [L]
这将停止该目录的其他规则。替代:
RewriteCond %{REQUEST_URI} !^/(blog/.*)$