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

类别:编程语言 点击:0 评论:0 推荐:

重写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类似,正受搜索引擎喜欢。

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

本文地址:http://com.8s8s.com/it/it27517.htm