在.htaccess文件中写RewriteRule无效的问题的解决

近来在Apache Rewrite 拟静态配置时,遇到个问题。写的以下:php

RewriteEngine on
RewriteRule ^/t_(.*)/$ /test.php?id=$1服务器

保存在httpd.conf文件中时,发现能够起做用。测试

而写在.htaccess文件中,死活不起做用。通过研究发现,里面随便填写字符,服务器报500错误,并且进行定向也没问题,因此不是访问不到的问题,初步猜想应该是语法的问题。后来在百度“RewriteRule  .htaccess”时 找到一篇文章,  文章标题:《URL RewriteRule在httpd.conf和.htaccess中的不一样点》 看到了:网站

须要注意的是,在这两个文件中添加到URL重写规则略有不一样。而这些不一样,对于不熟悉的人来讲,极可能会困扰许久。get

在Httpd.conf中: (1)Request URI的开头必须以斜线开始; (2)在寻找Cache文件的时候,必须在开头加上斜线; (3)在使用-f或者!-f的时候,必须在开头加上斜线。it

在.htaccess中,状况彻底相反: (1)Request URI的开头不能有斜线; (2)在寻找Cache文件的时候,不能在开头加上斜线; (3)在使用-f或者!-f的时候,不能在开头加上斜线。test

简单而言,就是在httpd.conf中,重写先后的URL在使用绝对路径时须要添加斜线“/”,表示从网站根目录开始;而在.htaccess中,则不须要。百度

 把.htaccess文件中的/去掉  测试OK了。配置

相关文章
相关标签/搜索