欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

php系统中实现的url重写/隐藏

程序员文章站 2022-06-07 12:37:27
...

www.cn-web.com网站大部分地址实现的url重写,因为我写的文章大多与.net技术有关,很多朋友以为这个系统也是基于.net技术的,其实这个系统是基于php+mysql写的,.net技术也可以实现url隐藏,我将在下篇文章中介绍下,今天我说我www.cn-web.com系统中url重写

www.cn-web.com网站大部分地址实现的url重写,因为我写的文章大多与.net技术有关,很多朋友以为这个系统也是基于.net技术的,其实这个系统是基于php+mysql写的,.net技术也可以实现url隐藏,我将在下篇文章中介绍下,今天我说我www.cn-web.com系统中url重写的实现。
--------------------------------------------------------------------------------

核心部分是.htaccess文件,默认可能不支持.htaccess,请查看《apache 不支持.htaccess文件如何处理》。

首先我们看下一个地址:
http://www.cn-web.com/cnweb/0/445/article/
这个地址的cnweb其实是虚拟的:

为什么没有cnweb这个目录而虚拟主机又认它呢,这就是因为我设置了.htaccess文件了:
.htaccess文件里加一段配置代码,如下:

ForceType application/x-httpd-php

这样就完成了第一步了,appach服务器看到地址栏里有cnweb这个目录地址后就把它当为了php的处理方式了;
OK,接着我们在根目录下建立cnweb文件,去掉它的扩展名,也就是没有扩展名,呵呵。这个文件里的代码是用php来写的(因为刚才已经将它注册到了appache服务器了)
可能大家已经想到了,在cnweb里我们就要配置下一步如何来转向了。
为了安全性,我这里不贴出我的cnweb文件的代码了,不过可以举个小例子:
$fields = explode('/', $_SERVER['REQUEST_URI']);
$id_pos = array_search('cnweb', $fields);
if( $id_pos !== false )
{
$c_id = $fields[ $id_pos + 1 ];
$a_id = $fields[ $id_pos + 2 ];
}
以上通过分析url取得类别ID和文章ID
if( $a_id )
{
$_GET['aid'] = $a_id;
$_GET['cid'] = $c_id;
require_once('showarticle.php');
}
?>

通过以上文章,大家可以看到,其实我显示文章的页面是'showarticle.php?aid=45&cid=0',当我们打开http://www.cn-web.com/cnweb/0/445/article/这个地址时,自动隐式转向是'showarticle.php?aid=45&cid=0'这个地址。
接下来如何设置处理showarticle.php,大家比我更清楚啦,呵呵。
.大家还可以在cnweb文件里对参数时行安全处理等相关设置,我就不说了,很简单的。

http://www.cn-web.com/cnweb/0/446/article/