[PHP] PHP初学者想了解"伪静态",必须看这个贴 [复制链接] [推荐]
一、何为“伪静态”?
以传智播客bbs论坛为例,这篇帖子的链接地址原本应该是“http://bbs.itcast.cn/forum.php?mod=post&action=newthread&fid=181”,拼接好多参数,是不是看了之后“头疼”?不仅不好看,从seo的角度考虑,这类链接是非常不利于百度收录。所以,传智bbs论坛技术人员使用“伪静态”处理后,上面头疼的链接就是http://bbs.itcast.cn/thread-82858-1-1.html瞬间好看了很多,百度蜘蛛也会非常爱采集。
二、为何会有伪静态技术?
谈到这点,不能不说动态网页和静态网页,更不能不提他们二者优缺点。好了,那么问题来了, 怎么能结合静态网页和动态网页的优点呢?那就是伪静态。伪静态至少有三种优势:1.有 利用SEO 2. 防止sql注入 3. 不产生纯静态文件,因此不增加服务器负担!
静态网页优缺点:
优点:
1)静态网页的内容相对稳定,因此容易被搜索引擎检索;
缺点:
1)静态网页没有数据库的支持,在网站制作和维护方面工作量较大,因此当网站信息量很大时完全依靠静态网页制作方式比较困难;
2)静态网页的交互性交叉,在功能方面有较大的限制。
动态网页优缺点:
优点:
1)动态网页以数据库技术为基础,可以大大减少降低网站维护的工作量;
2)采用动态网页技术的网站可以实现更多的功能,如用户注册、用户登录、在线调查、用户管理、订单管理等等;
缺点:
1)动态网页中的“?”对搜索引擎检索存在一定的问题,搜索引擎一般不可能从一个网站的数据库中访问全部网页,或者出于技术方面的考虑,搜索蜘蛛不去抓取
网址中“?”后面的内容,因此采用动态网页的网站在进行搜索引擎推广时需要做一定的技术处理才能适应搜索引擎的要求
当然伪静态也是有自身的缺点,比动态还要占用cpu资源,多一层匹配,每次都数据库查询。 好多人天天念叨效率,
如果是做企业站用个P效率阿? 一共就那么几条信息, 如果是大型网站,
实体文件多了也是蛋疼的事,磁盘I/O更头疼。在我们实际开发中,不希望使用真静态, 但是又希望有利于SEO,那就考虑使用伪静态.
三、如何制作伪静态?
说个简单例子吧, 比如文章详细页, 正常的调用是 bbs.itcast.cn/index.php?m=article&id=1, 这么不美观。我们要改成伪静态成为这种”bbs.itcast.cn/news/1.html“。
利用$article就是查询出来的数据是:
- <?php
- $article=array('id'=>1,'title'=>'发布i测试','content'=>'......' ......);
- echo "<a href='/news/{$article['id']}.html'>{$article['title']}</a>";
复制代码
提供两种方法!
nginx 规则
本帖隐藏的内容
rewrite ^/news/([0-9]+)\.html$ /index.php?m=article&id=$1 last;
apache 的伪静态规则
本帖隐藏的内容
RewriteRule ^news/([0-9]+)\.html$ index.php?m=article&id$1 [L]
四、解释apache 的伪静态为什么这么写?
apache的伪静态写法主要分成4部分,这里大概解释一下 为什么这样写 :
本帖隐藏的内容
RewriteRule 固定这么写,不告诉你为啥
^news/([0-9]+)\.html$ 这部分是匹配当前的url地址, 也就是伪静态的地址
[0-9]+ 表示至少有1个数字,可以是0也可以是无限大
index.php?m=article&id=$1 这里是指向对应的真实地址
$1 配对上面的第一个括号, $2匹配第二个以此类推
[L] L意思是如果此规则匹配,则停止,不在匹配后面的,减少无必要查询 。
如果无法理解建议查看正则视频教程:http://bbs.itcast.cn/thread-22094-1-1.html(最后一天课程就为正则)
[PHP] PHP初学者想了解"伪静态",必须看这个贴 [复制链接] [推荐]的更多相关文章
- 想学习SEO可以看哪些书籍
http://www.wocaoseo.com/thread-28-1-1.html 除了一些常见的比如入门推荐<走进搜索引擎>和进阶推荐<这就是搜索引擎--核心技术详解>之外 ...
- discuz x3在DIY模块中调用伪静态不成功,显示动态链接的解决办法
discuz x3在DIY模块中调用伪静态不成功,显示动态链接,然而其他的链接正常显示伪静态. 后台启用伪静态后,发现论坛版块.帖子点击链接,伪静态正常显示,然后在门户首页DIY显示的帖子,点进去后发 ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 按钮:让按钮看起来像个链接 (仍然保留按钮行为)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 模板题 codevs 1993 草地排水 想学习的请看链接
不能再水的题了. Dinic算法,比EK更快. 想要学习请看链接 https://comzyh.com/blog/archives/568/ 并附上我的模板(其实和comzyh大神的一样) #in ...
- 上周面试回来后写的Java面试总结,想进BAT必看
上周陪同之前一起工作的同事去面试(乔治,小袁,鹏飞(面试人)),第一站是去深圳,第二站上海,第三站杭州.面试什么公司我在这里就不多说了,你们知道是一线公司就行.其实本来真的没打算写这篇文章,主要是自己 ...
- 从蓝瘦“想哭”到 SELinux 看操作系统安全何在
最近一周,来自网络的"想哭"勒索病毒(Wannacry Ransomware)在世界各地同时上演了一部绑匪大片,台词华丽,演技出色,当仁不让地新晋世界第一网红.全球各国除了默默忙于 ...
- 吐血推荐,想进BAT必看
不必太纠结于当下,也不必太忧虑未来,人生没有无用的经历,当你经历过一些事情后,眼前的风景已经和从前不一样了.--村上春树 一.包含如下内容 ActiveMQ消息中间件面试专题 BAT80道面试题 BA ...
- 想要学好JQuery看这里
一.简介 jQuery 库可以通过一行简单的标记被添加到网页中 jQuery 是一个 JavaScript 函数库. jQuery 库包含以下特性: HTML 元素选取 HTML 元素操作 CSS 操 ...
- 用java制作日历,想休息的时候看一看离周末还有几天!
呀!忙碌的每一天,都忘记了明天就是我们愉快周末了.今天没有朋友的闲聊的话,明天处在绷紧的状态呢!还有朋友提到,所有今天来跟大家分享一下用java来编写日历表,累了想休息了的时候,打开看看,还有几天到周 ...
随机推荐
- hadoop笔记之MapReduce的应用案例(WordCount单词计数)
MapReduce的应用案例(WordCount单词计数) MapReduce的应用案例(WordCount单词计数) 1. WordCount单词计数 作用: 计算文件中出现每个单词的频数 输入结果 ...
- Java判断字符串是否为空的三种方法
方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低.1: if(s == null || s.equals("")); 方法二: 比较字符串长度, 效率高, 是我知道的最 ...
- 3.19 外协加工(通过BOM体现加工物料总成本,非系统标准工序外协功能)
3.19.1 业务方案描述 对每一个外协加工产品定义对应的加工费项目,并将发外加工物料及加工费项目一起挂在加工后产品的BOM下(供应类型为装配拉式). 加工后产品的成本按外协BOM卷积,总成本包含 ...
- 图文:TF卡和SD卡的区别及什么是TF卡?什么是SD卡
小型存储设备凭借低廉的价格.多样化的品种.实用等特性大量充斥在大家身边,比如智能手机手机上.数码照相机上.游戏机上(一般是掌机)等都小型电子设备都频繁的使用到这种统称为SD的产品,比如TF卡和SD卡( ...
- C++默认参数与函数重载 注意事项
一.默认参数在C++中,可以为参数指定默认值.在函数调用时没有指定与形参相对应的实参时, 就自动使用默认参数. 默认参数的语法与使用:(1)在函数声明或定义时,直接对参数赋值.这就是默认参数:(2)在 ...
- [Leetcode][Python]25: Reverse Nodes in k-Group
# -*- coding: utf8 -*-'''__author__ = 'dabay.wang@gmail.com' 25: Reverse Nodes in k-Grouphttps://oj. ...
- [虚拟化/云][全栈demo] 为qemu增加一个PCI的watchdog外设(七)
目标: 1. 完成最终的设备驱动,增加具体的watchdog设备操作的代码. 测试代码: 代码最终实现见cwd_demo.c 代码只实现了read与write. 没有实现ioctl. 因此,我们可以 ...
- SRM 584 div2
早早地水完了三道题,pt1000用的是dfs,开始做的时候误认为复杂度最多就O(2^25),结果被一组O(2*3^16)的数据接近1e8给cha了.继续努力. pt250:求两个串的前缀组成的不同串数 ...
- python <tab>自动补全
1.获取python目录[我使用的是64位ubuntu系统] [~$]python Python 2.7.3 (default, Apr 10 2013, 06:20:15) [GCC 4.6.3] ...
- 通过案例掌握Spring 管理事务的步骤及配置
案例描述 通过完成生成订单业务,掌握事务处理. 需要d_order表和d_item表 订单生成时的业务逻辑:向d_order插入1条数据的同时,向t_item中插入若干条数据 这就是一个独立的 ...