我刚刚开始玩mod_rewrite,我正在尝试将所有请求转发到旧的html文件,转而使用php文件。
这是.htaccess内容:
RewriteCond $1.php -f
RewriteCond $1.html !-f
RewriteRule ^(.*).html$ $1.php
问题是,当我输入一个html页面的URL时,它不起作用,我得到一个404.在Apache的错误日志中没有任何内容,只是访问日志中的404。它应该重定向到php。
现在,index.php确实存在,我可以直接转到它,旧的index.html文件不存在。
然而,如果我评论出这条线 RewriteCond $ 1.php -f 一切正常,即它将我的index.html请求转发给index.php。
任何想法为什么? -f应该测试'文件存在',$ 1应该是'文件',我想?
顺便问一下,有没有人有他们推荐的好的,友好的mod_rewrite教程?
答案 0 :(得分:0)
在.htaccess中,您无需使用^
和$
。所有规则都适用于相对于当前目录的URL。