开启PHP的伪静态模式


一直在做php的开发工作.在开发的过程中老早就听说了“伪静态”这一说。但是一直没有对其进行了解。今天通过本篇文章仔细学习下。

首先,什么是伪静态:

伪静态又名URL重写,是动态的网址看起来像静态的网址。换句话说就是,动态网页通过重写 URL 方法实现去掉动态网页的参数,但在实际的网页目录中并没有必要实现存在重写的页面。

1.检测Apache是否支持mod_rewrite

通过php提供的phpinfo()函数查看环境配置,通过Ctrl+F查找到“Loaded Modules”,其中列出了所有
apache2handler已经开启的模块,如果里面包括“mod_rewrite”,则已经支持,不再需要继续设置。

如果没有开启“mod_rewrite”,则打开目录 您的apache安装目录“/apache/conf/” 下的 httpd.conf 文
件,通过Ctrl+F查找到“LoadModule rewrite_module”,将前面的”#”号删除即可。

如果没有查找到,则到“LoadModule” 区域,在最后一行加入“LoadModule rewrite_module modules/mod_rewrite.so”(必选独占一行),然后重启apache服务器即可。

2.在httpd.conf中配置虚拟主机

# Virtual hosts 启用虚拟主机
Include conf/extra/httpd-vhosts.conf

3.httpd_vhosts.conf文件中,配置相应的选项.详细讲解

<VirtualHost *:80>
  DocumentRoot "C:/myenv/apache/htdocs/static3"
  ServerName www.hsp.com
  <Directory "C:/myenv/apache/htdocs/static3">
#Deny from All 403错误提示
Allow from All
#如果文件目录在apache目录外面,注释掉optinos 则,不能列表.
options +Indexes
#下面这个表示可以去读取 .htaccess文件,也可以直接在虚拟主机中配置.
Allowoverride All
RewriteEngine On
RewriteRule news-id(\d+).html$ error.php?id=$1
#这里可以设置多个重写的规则
#RewriteRule news-id.html$ error.php
  </Directory>
 </VirtualHost>

4.在相应的目录下编写.htaccess 重写规则

   例子:

<IfModule rewrite_module>
RewriteEngine On
RewriteRule news-id(\d+).html$ show.php?id=$1
#这里可以设置多个重写的规则
#RewriteRule news-id.html$ error.php
</IfModule>

如果在linux下可以直接创建,

如果是在windows平台下,用记事本创建一个文件,比如abc.txt,然后另存为 .htaccess文件即可

5.重写规则,也可以直接在配置虚拟主机的<Directory>段配置.

动态、静态、伪静态之间的利与弊(新)

动态网址

首先,动态网址目前对于Google来说,“不能被抓取”的说法是错误的,Google能够很好的处理动态网址并顺利抓取;其次“参数不能超过3个”的说法也不正确,Google能够抓取参数超过3个的动态网址,不过,为了避免URL太长应尽量减少参数。

其次,动态网址有其一定的优势,以上面所说的 news.php?lang=cn&class=1&id=2 为例,网址中的参数准确的告诉Google,此URL内容语言为cn、隶属于分类1、内容ID为2,更便于Google对内容的识别处理。

最后,动态网址应尽量精简,特别是会话标识(sid)和查询(query)参数,容易造成大量相同页面。

静态网址

首先,静态网址具有的绝对优势是其明晰,/product/nokia/n95.html和/about.html可以很容易被理解,从而在搜索结果中可能点击量相对较高。

其次,静态网址未必就是最好的网址形式,上述动态网址中说到,动态网址能够告诉Google一些可以识别的参数,而静态网址如果文档布置不够恰当(如:过于扁平化,将HTML文档全放在根目录下)及其他因素,反而不如静态网址为Google提供的参考信息丰富。

最后,樂思蜀觉得Google此文中是否有其隐藏含义?“更新此种类型网址的页面会比较耗费时间,尤其是当信息量增长很快时,因为每一个单独的页面都必须更改编译代码。”虽然所说的是网站,但在Google系统中是否同样存在这样的问题呢?

伪静态网址

首先,伪静态网址不能让动态网址“静态化”,伪静态仅仅是对动态网址的一个重写,Google不会认为伪静态就是HTML文档。

其次,伪静态可取,但应把重心放在去除冗余参数、规范URL、尽可能的避免重复页上。

最后,伪静态有很大潜大危险,最好在对网站系统、网站结构、内容分布、参数意义熟悉的情况下使用。

在写伪静态规则时,应保留有价值的参数,不要将有价值的参数全部精简掉,如前面例子中的 news.php?lang=cn&class=1&id=2 最好重写为 news-cn-class1-id2.html,而不是过份精简重写为 news-2.html。

再就是伪静态中一定不能包含会话标识(sid)和查询(query)参数,/product.asp?sid=98971298178906&id=1234 这样的动态网址,其中的sid本来Google能够识别并屏蔽,但如果重写为 /product/98971298178906/1234,Google不但无法识别,还在整站中造成无限重复页面(每个会话都会产生一个新的会话ID)。



相关阅读:
jQuery 中ajax异步调用的四种方式
Win10到底啥什么时候正式发布?微软Build 2015未公布确切上市时间
基于html5和nodejs相结合实现websocket即使通讯
win10安装密钥更新变化有哪些? win10安装密钥新变化的内容
html禁止清除input文本输入缓存的两种方法
JavaScript实现梯形乘法表的方法
jquery学习总结(超级详细)
jQuery.Highcharts.js绘制柱状图饼状图曲线图
php通过array_merge()函数合并两个数组的方法
后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
jQuery插件pagination实现无刷新分页
java利用Ant脚本生成war包全过程
Win10 Mobile 10586.107怎么更新?Lumia950/XL/550可升级
jQuery DataTables插件自定义Ajax分页实例解析
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 广州北-衡阳东 瓜州-武威 南宫东-泰和 黑水-大石桥 淄博-铜陵北 柴沟堡-包头东 漯河-武山 温州-武山 滨州-葫芦岛 莲江口-苔青 济南西-扶余北 南宁-厦门 中卫-南京 吉首-张家界 亳州-北京西 新和-轮台 来宾-陆川 海石湾-宿州 英德西-渭南北 查干特格-赛乌苏 金昌-绥德 怀化-潼南 民乐-兰州西 利川-泰宁 商丘-绥中 南充-甘洛 海伦-海北 丹阳-赣州 许昌东-天津西 泰山-清原 成都-南平南 新民-杨树岭 宁陵县-大连 凤凰城-歪头山 紫荆关-大灰厂 驻马店-商丘 刘沟-轸溪 沧州-石家庄北 鞍山-新邱 潢川-樟树 讷河-江桥 山海关-德惠 昌图西-台安 开原西-徐州东 咸宁-源潭 中卫-玉门 枝江北-驻马店西 绥中北-镇江南 广州东-遵义 宁陵县-邢台 兰考-成都 鞍山-河源 南京南-武义北 金河-岩山 无锡东-西安北 章党-口前 沈阳北-株洲 榕江-广宁 普湾-盘锦 八方-绥棱 克山-塔哈 蔡家坡-信丰 上海-菏泽 长沙-临沂北 集宁南-驻马店 兴城-泰来 九江-武昌 海城-昆山 向塘-茶陵南 四方台-二井 诸城-费县 聊城-黄山 嘉祥-饶阳 小河镇-西安 滕州-吴堡 五莲-郯城 两家-长山屯 夏邑县-宝鸡 旗下营-孤山 梅州-玉林 奥运火炬传递什么时侯到秦皇岛
08毕业生档案已经发回我的户口所在地庄河人事局了,我现在在
绵阳西山公园有什么好玩的吗?急急急
怎样在网上查询已预定好的火车列车票?汉口到乌鲁木齐的
绵阳到九寨有多远坐车要多久
从浙江金华到安徽滁州申通快递多少小时
四川到海南琼海怎么做列车火车啊急救,求学
为啥k117到遂宁近,车票却比成都贵
从东营到烟台栖霞怎么坐车,多长时间到
大连到吉林的大客有吗,几点
合肥到贵阳的火车列车路线
关于列车火车快件的问题。
从德州陵县郑寨到济南飞机场怎么坐汽车
从卫星广场到长春市委党校怎么坐车
从广东医学院东莞校区去中山大学南方学院应该怎样坐车?公交车
汕头欢乐迪在哪乘几路公共客车汽车可以到
从陈家坪坐哪路公车能直达到江北火车列车站
谁能告诉我一下从云南昆明至内蒙包头市的车价和线路谢谢
四川省达州市到南京市有多少公里
求战国时期赵`燕`楚三国很详细的资料``
无锡到金华的火车列车票大概多少钱
20号下午从徐州去新沂的列车火车有哪些班次
浙C15171铜梁到温州的车要几点到
1804火车途经哪些城市
谁知道4月28号哈尔滨到牡丹江的列车都有几点的,票价多少钱
昌乐县列车火车站附近酒店有哪些,介绍一下可以吗我要到那边去
哈尔滨站到呼兰汽车
南充到乐山的汽车
请问现在从南宁去贵阳可以走百色隆林这条线路吗 隆林到百色
四平市特种作业操作证到哪里办理比如焊工证、电工证、天车

Copyright © 2016 phpStudy |