php怎么实现类似 的url重写?
怪我咯
怪我咯 2017-04-10 13:13:06
[PHP讨论组]

php怎么实现类似segmentfault 的url重写?

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(2)
巴扎黑

2个步骤可以实现。

1.通过APACHE或者nginx或者IIS将真实地址变为伪静态地址,让伪静态地址能够访问;

2.通过程序正则的方法将html元素中的a标记href提取出来,将其伪静态,然后配合第一步便可实现。

实现方法如:

//将页面内容放入缓冲区
$content = ob_get_contents();
//进行正则匹配
$content = preg_replace(
			array("/\<a href\=\"live\.php\?tags\=(.*?)\&page\=(.*?)\"/i",
					"/\<a href\=\"live\.php\?tags\=(.*?)\"/i"),
			array("<a href=\"/live-tags-\\1-\\2.html\"",
					"<a href=\"/live-tags-\\1.html\""), $content);

//释放
obclean();
//输出
echo $content;

上面的正则变为你自己的,替换也变为自己的。。。。

怪我咯

大体来说有两种实现方式:

  1. webserver中配置重写规则,比如在apache中启用mod_rewrite,在nginx中使用rewrite指令;
  2. 数字列表单入口的应用中进行路由分发,多见于成熟的MVC框架,比如cakephp,不过这中需要webserver配置的辅助;
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号