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>
<IfModule mod_rewrite.c> <br>
RewriteEngine On <br>
RewriteBase / <br>
RewriteCond %{REQUEST_FILENAME} !-f <br>
RewriteCond %{REQUEST_FILENAME} !-d <br>
RewriteRule ^(+)$ /index.php?today=$1 <br>
</IfModule> <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>
<?php <br>
//rewrite 测试 <br>
$uid =$_REQUEST['today']; <br>
?> <br>
<HTML> <br>
<HEAD> <br>
<TITLE>rewrite 测试</TITLE> <br>
</HEAD> <br>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080"> <br>
今天是<?php echo $today;?>,看看历史上的今天都发生了什么事情?<br> <br>
…… <br>
</BODY> <br>
</HTML> </p>
<p>
<br>
这里参数就会传递给index.php文件里的$today,在这个程序内,你就可以根据参数,进行处理,如查询数据库啦、做运算啦等,然后再显示相应的数据出来,就可以了。<br><strong>实现方法2</strong></p>
<p class="codetitle">
<span><u>复制代码</u></span> 代码如下:</p>
<p class="codebody">
<br>
<?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&sid=100&softid=8630 <br>
}else die("Path:Error!"); <br>
}else die("Path:Nothing!"); <br><br>
echo($gid); <br>
echo("<br>"); <br>
echo($sid); <br>
echo("<br>"); <br>
echo($softid); <br>
?> </p>
頁:
[1]