ReWrite学习笔记

来源:互联网 发布:数据分析的作用 编辑:程序博客网 时间:2024/06/05 09:03

首先,你的空间得支持ReWrite,具体的设置我就不说了,上搜索引擎查一下很多的。我这里就讲很简单的入门。

比如,下面,我要实现这样的URL:
http://xxx.com/0725
http://xxx.com/0726
http://xxx.com/0727


上面xxx.com是一个记录《今天是》这样的历史内容的一个测试站点。上面链接的意思,就是显示07月25日的历史上发生了什么事情,类似这样。这样看起来就很美观、整齐了。要不然,可能的地址就是:
http://xxx.com/index.php?t...
http://xxx.com/index.php?t...
http://xxx.com/index.php?t...


现在我就是要实现把 index.php?today= 隐藏掉。以下是代码:

1..htaccess 文件
<IfModule mod_rewrite.c> 
  RewriteEngine On 
  RewriteBase / 
  RewriteCond %{REQUEST_FILENAME} !-f 
  RewriteCond   %{REQUEST_FILENAME} !-d 
  RewriteRule ^([0-9]+)$   /index.php?today=$1 
  </IfModule>

粗体字这里我说明一下,其它的按这个格式吧,具体我现在也不理解。
[0-9]的意思是,参数只能是0~9这些数字,如果你要包含任何字符,就改为:

RewriteRule ^(.+)$ /index.php?today=$1  

这里[0-9]改为了. ,这个.就代表任意字符。当然复杂的还很复杂,我们暂时不管。

2.index.php文件 

PHP代码
  1. <?php    
  2. //rewrite 测试    
  3. $uid =$_REQUEST[’today’];    
  4. ?>    
  5. <HTML>    
  6. <HEAD>    
  7. <TITLE>rewrite 测试</TITLE>    
  8. </HEAD>    
  9. <BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080">    
  10. 今天是<?php echo $today;?>,看看历史上的今天都发生了什么事情?<br>    
  11. ……    
  12. </BODY>    
  13. </HTML>  


这里参数就会传递给index.php文件里的$today,在这个程序内,你就可以根据参数,进行处理,如查询数据库啦、做运算啦等,然后再显示相应的数据出来,就可以了。

 

 

 

  1. <?php    
  2. //url示例:soft.php/1,100,8630.html    
  3. //利用server变量 取得PATH_INFO信息 该例中为 /1,100,8630.html  也就是执行脚本名后面的部分    
  4. if(@$path_info =$_SERVER["PATH_INFO"]){    
  5.     if(preg_match("///(/d+),(/d+),(/d+)/.html/si",$path_info,$arr_path)){    
  6.         $gid     =intval($arr_path[1]); //取得值 1    
  7.         $sid     =intval($arr_path[2]);  //取得值100    
  8.         $softid  =intval($arr_path[3]);  //取得值8630    
  9.         //相当于soft.php?gid=1&sid=100&softid=8630    
  10.     }else die("Path:Error!");    
  11. }else die("Path:Nothing!");    
  12.   
  13. echo($gid);    
  14. echo("<br>");    
  15. echo($sid);    
  16. echo("<br>");    
  17. echo($softid);    
  18. ?>  
原创粉丝点击