Apache RewriteCond无缘无故违反RewriteCond规则
我刚刚开始使用mod_rewrite,我正在尝试将所有请求转发到旧的html文件,以转到php文件 以下是.htaccess的内容:Apache RewriteCond无缘无故违反RewriteCond规则,apache,mod-rewrite,Apache,Mod Rewrite,我刚刚开始使用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确实存在,我可以直接转到它,而
RewriteCond $1.php -f
RewriteCond $1.html !-f
RewriteRule ^(.*).html$ $1.php
问题是当我输入一个html页面的url时,它不起作用,我得到一个404。Apache的错误日志中没有任何内容,只有访问日志中的404。它应该重定向到php
现在,index.php确实存在,我可以直接转到它,而旧的index.html文件不存在
然而,如果我把这句话注释掉
重写cond$1.php-f
这一切都很好,也就是说,它将我的index.html请求转发到index.php
你知道为什么吗?我认为,-f应该测试‘文件存在’并且$1应该是‘文件’
顺便问一下,有人推荐一个好的、友好的mod_重写教程吗?在.htaccess中,您不需要使用
^
和$
。所有规则都适用于与当前目录相关的URL。对不起,我没有遵守,我已经设置了rewritebase/myproject/,我应该把^放在哪里?我以为“^”只是匹配字符串开头的正则表达式?你能说得更具体些吗?谢谢。哦,我想我明白你的意思了。您是否错过了前两行是重写条件而不是重写规则?