巴拿马驹 發表於 2023-5-25 00:00:00

ReWrite学习笔记小结

<p>
        比如,下面,我要实现这样的URL: <br>
        http://xxx.com/0725 <br>
        http://xxx.com/0726 <br>
        http://xxx.com/0727 <br>
        … <br><br>
        上面xxx.com是一个记录《今天是》这样的历史内容的一个测试站点。上面链接的意思,就是显示07月25日的历史上发生了什么事情,类似这样。这样看起来就很美观、整齐了。要不然,可能的地址就是: <br>
        http://xxx.com/index.php?t... <br>
        http://xxx.com/index.php?t... <br>
        http://xxx.com/index.php?t... <br>
        … <br><br>
        现在我就是要实现把 index.php?today= 隐藏掉。以下是代码: <br><br>
        1..htaccess 文件 <br>
        &lt;IfModule mod_rewrite.c&gt; <br>
          RewriteEngine On <br>
          RewriteBase / <br>
          RewriteCond %{REQUEST_FILENAME} !-f <br>
          RewriteCond   %{REQUEST_FILENAME} !-d <br>
          RewriteRule ^(+)$   /index.php?today=$1 <br>
          &lt;/IfModule&gt; <br><br>
        粗体字这里我说明一下,其它的按这个格式吧,具体我现在也不理解。 <br>
        的意思是,参数只能是0~9这些数字,如果你要包含任何字符,就改为:<br><br>
        RewriteRule ^(.+)$ /index.php?today=$1   <br><br>
        这里改为了. ,这个.就代表任意字符。当然复杂的还很复杂,我们暂时不管。 <br><br>
        2.index.php文件  </p>
<p class="codetitle">
        <span><u>复制代码</u></span> 代码如下:</p>
<p class="codebody">
        <br>
        &lt;?php      <br>
        //rewrite 测试      <br>
        $uid =$_REQUEST['today'];      <br>
        ?&gt;      <br>
        &lt;HTML&gt;      <br>
        &lt;HEAD&gt;      <br>
        &lt;TITLE&gt;rewrite 测试&lt;/TITLE&gt;      <br>
        &lt;/HEAD&gt;      <br>
        &lt;BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080"&gt;      <br>
        今天是&lt;?php echo $today;?&gt;,看看历史上的今天都发生了什么事情?&lt;br&gt;      <br>
        ……      <br>
        &lt;/BODY&gt;      <br>
        &lt;/HTML&gt;    </p>
<p>
        <br>
        这里参数就会传递给index.php文件里的$today,在这个程序内,你就可以根据参数,进行处理,如查询数据库啦、做运算啦等,然后再显示相应的数据出来,就可以了。<br><strong>实现方法2</strong></p>
<p class="codetitle">
        <span><u>复制代码</u></span> 代码如下:</p>
<p class="codebody">
        <br>
        &lt;?php     <br>
        //url示例:soft.php/1,100,8630.html     <br>
        //利用server变量 取得PATH_INFO信息 该例中为 /1,100,8630.html  也就是执行脚本名后面的部分     <br>
        if(@$path_info =$_SERVER["PATH_INFO"]){     <br>
            if(preg_match("/\/(\d+),(\d+),(\d+)\.html/si",$path_info,$arr_path)){     <br>
                $gid     =intval($arr_path); //取得值 1     <br>
                $sid     =intval($arr_path);  //取得值100     <br>
                $softid  =intval($arr_path);  //取得值8630     <br>
                //相当于soft.php?gid=1&amp;sid=100&amp;softid=8630     <br>
            }else die("Path:Error!");     <br>
        }else die("Path:Nothing!");     <br><br>
        echo($gid);     <br>
        echo("&lt;br&gt;");     <br>
        echo($sid);     <br>
        echo("&lt;br&gt;");     <br>
        echo($softid);     <br>
        ?&gt;   </p>
頁: [1]
查看完整版本: ReWrite学习笔记小结