我最近将我网站上的文件扩展名从 .html 切换为 .php。因此,我想做以下事情:
将 .html 文件重定向到它们的 .php 等价物
从所有 url 中删除 .php 扩展名
无扩展 url 应该可以工作(例如,foo.com/bar 应该显示位于 foo.com/bar.php 的页面)
这是我目前的方法,我从各种来源拼凑而成:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)\.html$ $1.php [L]
RewriteRule ^([^\.]+)$ $1.php [NC,L]
我的方法至少存在三个问题:
当尝试访问 foo.domain/bar.php 时,.php 扩展名仍然存在(但值得注意的是,foo.domain/bar确实显示了正确的 .php 页面)
虽然对 .html 文件的请求确实显示了正确的 .php 页面,但 .html 扩展名仍然存在(我不希望显示扩展名)
现在无法在 url 中不包含 index.php 的情况下访问目录(例如,foo.com/bar/ 会引发 404 错误)
很明显,我发现 mod_rewrite 真的很难。任何帮助,将不胜感激。