【发布时间】:2023-03-10 20:38:01
【问题描述】:
我刚刚开始使用 mod_rewrite,我正在尝试将所有请求转发到旧的 html 文件以转到 php 文件。
这是 .htaccess 的内容:
RewriteCond $1.php -f
RewriteCond $1.html !-f
RewriteRule ^(.*).html$ $1.php
问题是当我输入一个 url 到一个 html 页面时它不起作用,我得到一个 404。Apache 的错误日志中没有任何内容,只有访问日志中的 404。它应该重定向到 php。
现在,index.php 确实存在,我可以直接进入,旧的 index.html 文件不存在。
但是,如果我注释掉该行 RewriteCond $1.php -f 一切正常,即将我的 index.html 请求转发到 index.php。
任何想法为什么?我认为 -f 应该测试“文件存在”并且 $1 应该是“文件”?
顺便问一下,有没有人推荐一个好的、友好的 mod_rewrite 教程?
【问题讨论】:
标签: apache mod-rewrite