我想重写我网站上的网址,这样,
www.example.com/login指向www.example.com/login.php
www.example.com/login/也指向www.example.com/login.php
网站深处的页面应遵循上述规则。IE
www.example.com/inner/inner2/something 和www.example.com/inner/inner2/something/也应该指向
www.example.com/inner/inner2/inner3/something.php
www.example.com/login/anything,如果不存在应该显示 404 (在我的情况下它会导致循环)
我写的规则是:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*[^/])$ $1.php [L]
RewriteRule ^(.+)/$ $1.php [L]
它工作正常,在上述 3 种情况下,但在第 4 种情况下,它会导致循环。
如果请求扩展名为 .php 的文件,我还想显示 404。
而且,如果我使用 REQUEST_URI 而不是 REQUEST_FILENAME,上述规则的行为也会发生变化。两者有什么区别?
TIA