用Apache的Rewrite重写url总是失败的原因

    用Apache的Rewrite重写url总是失败,测试了好久,终于找到原因。

    首先在网站根目录建了一个test.php文件,代码如下:

    

 <?php
2      echo    substr($_SERVER["QUERY_STRING"], 1); 
3   ?>

     正常情况下,在地址栏输入http://localhost/test.php?=100就会显示下面的画面

      

 

    在网站根目录建了一个.htaccess文件,写了如下代码

    RewriteEngine On #开启重写引擎

    RewriteRule ^/([0-9]*)\.html$ /test.php?=$1 #意思是在网站根目录下的任何数字("([0-9]*)")如1.html、22.html的地址都会重写到后面的"test.php?=$1"这里的$1是前面"([0-9]*)"这个括号匹配到的任何字符串,如22.html那么$1的值就是22。

   保存.htaccess后,奇怪的是,当在地址栏上输入http://localhost/22.html的时候,显示404没有找到该网面

   

     万思不得其解,在百度没到找到答案,只好修改.htaccess。弄了一阵子,原来是^/([0-9]*)\.html$里的"/"出的问题,把"/"删除后,保存,再输入localhost/22.html。期待的画面终于出来了。

   

   

posted @ 2012-03-02 21:57  乌冬  阅读(532)  评论(0编辑  收藏  举报