PHP 和 Apache 结合重写URL 以适合搜索引擎

王朝php·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

重写URL的方法很多,比如apache 中有一个rewrite 的模块,通过写规则的方法可以实现URL的翻译。。。。

我这里的重写URL实际上是从URL的不同形式中取回PHP所需要的参数!

比如正常情况下http://www.sunthing.com/index.php?name=sunthing&sex=male?

我们的参数名是name 和sex ,数据是sunthing 和male

在apache 中我们的URL 可以以这种形式出现http://www.sunthing.com/index.php/name/sunthing/sex/male

那么以这种形式出现的话,我们就要分析URL,将各参数取回,同时在生成(输入)链接的时候也以这种形式生成(输入)

具体如何做呢?

PHP中有几个有用的服务器变量一个是$_SERVER['SCRIPT_NAME']它是文件名包括路径(相对网站)另一个是$_SERVER['REQUEST_URI']这是整个URL当然还有其他服务器变量,这里所用到的就是这两个,其他就不多说了!

接下来就是要分离文件名和参数,这部分处理是在文件名的那个文件中处理

$parameters_string=str_replace($_SERVER['SCRIPT_NAME'],"",$_SERVER['REQUEST_URI']);

将各个参数据分离

$parameters_array=split('/',$parameters_string);

这个时候数组$parameters_array 的成员分别为第一个为空,第二个为name ,第三个为sunthing第四个为sex 第五个为male

这些参数分离出来后就可以为我所用了!

如何用?当然提参看你自己的应用了啊!.

比如这里是查询的话select *from users where name=$parameters_array[3] and $parameters_array[4]=$parameters_array[5]

那么这个时候大家是否理解了呢?本来是http://www.sunthing.com/index.php?name=sunthing&sex=male? 样子的URL,现在改写成了http://www.sunthing.com/index.php/name/sunthing/sex/male这种样子的URL而程序依然可以执行,而又和静态网页的URL类似,正受搜索引擎喜欢。

我在这里只是一个抛一下石头,希望对大家有所帮助!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航