当前位置: 首页 > 图文教程 > 服务器 > Windows服务器 > ReWrite学习笔记小结

Windows服务器
自动实现Windows 2000系统补丁的快速安装
快速恢复Windows 2000/XP遗忘的管理员密码
Windows 2000/XP操作系统中超强命令syskey
环境变量应用:多系统共享程序
如何配置windows 2003的DNS服务器
Win 2003远程管理的实现
Win 2003轻松识别外来设备
Win 2003实现网络共享还原
体验Win 2003共享“还原”技术
用Windows 2003实现网络共享还原
激活windows 2003常用服务
windows 2003常见故障诊断
轻松提高windows 2003的运行速度
windows 2003中IE安全区域的设置技巧
改变windows 2003登录方式
windows 2003中给用户文件指派登录脚本
在windows 2003创建映像之前使用Sysprep
怎样在windows 2003下使用USB便携存储器
NT升级至windows 2003如何应用注册表和文件系统
windows 2003中配置PPTP VPN客户端筛选器

Windows服务器 中的 ReWrite学习笔记小结


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-04   浏览: 29 ::
收藏到网摘: n/a

首先,你的空间得支持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
//rewrite 测试
$uid =$_REQUEST['today'];
?>
<HTML>
<HEAD>
<TITLE>rewrite 测试</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080">
今天是<?php echo $today;?>,看看历史上的今天都发生了什么事情?<br>
……
</BODY>
</HTML>

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

<?php
//url示例:soft.php/1,100,8630.html
//利用server变量 取得PATH_INFO信息 该例中为 /1,100,8630.html 也就是执行脚本名后面的部分
if(@$path_info =$_SERVER["PATH_INFO"]){
if(preg_match("/\/(\d+),(\d+),(\d+)\.html/si",$path_info,$arr_path)){
$gid =intval($arr_path[1]); //取得值 1
$sid =intval($arr_path[2]); //取得值100
$softid =intval($arr_path[3]); //取得值8630
//相当于soft.php?gid=1&sid=100&softid=8630
}else die("Path:Error!");
}else die("Path:Nothing!");
echo($gid);
echo("<br>");
echo($sid);
echo("<br>");
echo($softid);
?>