分享
 
 
 

HDwiki百科建站讲座第三期 :apache、iis下的rewrite规则

王朝网站推广·作者佚名  2011-12-04
窄屏简体版  字體: |||超大  

大家好,“HDwiki百科建站讲座第三期”现在正式开始~~,今天,邀请到我们的嘉宾是李光明(论坛ID:wanner),他将就“apache、iis下的rewrite规则”的话题与各位站长朋友进行交流,下面,以热烈的掌声有请wanner

1、伪静态简介

伪静态就是:动态网页通过重写URL的方法实现去掉动态网页的参数,但在实际的网页目录中并没有必要实现存在重写的页面。

伪静态的目的

最主要的就是迎合搜索引擎方便搜索引擎蜘蛛(Spider)来抓取网页上的相关内容!方便用户访问网站 一个好网页如果是动态的用户在相互传播时感觉对方信任度不会高但一看一个静态页相对用户对网页的信任度就高点而且伪静态的后缀方式基本雷同 一看就知道是伪静态还是真的静态网页!伪静态对SEO有利,收录比动态会更好。

2、设置伪静态的要求

设置伪静态的要求,不同的服务器要求不一样,apache需要rewrite模块,iis需要安装ISAPI_rewrite软件.(若是虚拟主机,可向空间商咨询),独立主机的可以自行设置,一般apache默认都会有rewrite模块并开启,如果没开启,可打开apache的配置文件httpd.conf文件,LoadModule rewrite_module modules/mod_rewrite.so,将前面的井号去掉保持重启apache即可以下重点说说iis的ISAPI_rewrite软件。

l 在 IIS 管理器里选择网站,右键选择“属性”,如图一

l 选择你的站点,比方是默认站点,右键单击,选择属性,如图二

l 查看isapi筛选器

l 添加ISAPI筛选器,要选择的isapi.dll可以在网上下载得到

l 确定后查看刚刚添加是否成功

当状态时绿色向上的箭头的时候表示添加成功了,当rewrite环境配置好后就可以开启rewrite了。

3、开启伪静态

当确认已经安装rewrite模块后,便可开启hdwiki后台的rewrite规则了,apache用户开启后一般不会存在什么问题,系统已经自动生成了.htaccess文件, iis用户需要在论坛目录下手动添加httpd.ini文件(虚拟主机用户可咨询空间商该文件存在的位置),具体可参考http://kaiyuan.hudong.com/bbs/viewthread.php?tid=10341&extra=&highlight=iis%2B&page=1,该贴是4.0.5的规则,不过这个是通用规则,4.1同样适用,如果要全部单独写出的规则,可参考http://kaiyuan.hudong.com/bbs/viewthread.php?tid=13330&highlight=rewrite

4、rewrite规则

hdwiki4.1的手册中有apache,iis和nginx三种服务器下的rewrite规则

l apache下的规则

RewriteEngine on #表示开启rewrite

RewriteBase /hdwiki4/wikiframe/ #设置目录级重写的基准URL,指站点的路径

RewriteCond %{REQUEST_FILENAME} !-f #RewriteCond是指定义重写发生的条件,就是说一个RewriteRule 前面可以有多个RewriteCond,就是说,当符合RewriteCond 时,后面的RewriteRule 才会去执行,%{REQUEST_FILENAME}表示请求的文件名 !表示非 -f表示常规文件 ,该句表示请求的文件名为一个非常规文件时继续执行,否则不执行(常规文件时指a.txt这样的,可以直接下载的那种文件)

RewriteCond %{REQUEST_FILENAME} !-d #该句表示请求的文件名不是一个目录继续执行RewriteRule ^.*$ index.php?$0 #当上面两个条件都符合了,才会执行这条规则,该规则指,例如 abc会被指向index.php?abc

以上这些代码中,有很多正则表达式,就RewriteRule ^.*$ index.php?$0为例做讲解 ^表示以什么什么开始 ,比方^a 表示以a字符开始 ,'.'点这个字符时通配符,表示任意字符,*表示前面的表达式0到n个,.*表示0个或n个任意字符,$表示以什么结束,b$表示以b字符结束 $0表示匹配上的所有字符再看这个实例

RewriteRule ^/wiki/(.*)$ /index\.php\?doc-innerlink-$1

这个里面有$1表示^/wiki/(.*)$这个里面括号中匹配的字符串,如果后面还有括号的,就是$2$3....iis的rewrite规则基本和这个一样,ISAPI高版本中兼容上述写法,具体的可参考手册,另外要注意的是,很多iis的用户将hdwiki的规则和其他系统如discuz的规则写在了一起,导致iis冲突,一般可以通过文件夹名称来区别

例如,有些用户在httpd.ini中这样写

RewriteRule ^/(.*)/(.*)\.(htm|html|shtml|tpl|asp|jsp|php|do)$ /baike/index\.php\?$1可以改为RewriteRule ^/baike/(.*)\.(htm|html|shtml|tpl|asp|jsp|php|do)$ /baike/index\.php\?$1还有好多用户iis下不是用的这种通用写法,而是和dz一样写的是具体的,比如RewriteRule ^/baike/doc-view-(.*)$ /baike/index\.php\?doc-view$1这种写法完全可以,唯一不方便的就是如果hdwiki在新添加的功能,这个url可能无法被解析,因为没有相应的规则对应大家可以依葫芦画瓢照着写一个就可以了

l nginx下的写法

if ($request_filename !~* (.*)\.(css|js|gif|jpg|png|xml)){

# 修改以下语句中的 /hdwiki 为你的HDWiki目录地址,如果程序放在根目录中,请将 /hdwiki 修改为 /

rewrite ^(/hdwiki)/(.*)$ $1/index.php?$2;

}

仅开启以 http://mydomain/词条名 的rewrite规则,则添加如下代码:

# 修改以下语句中的 /hdwiki 为你的HDWiki目录地址,如果程序放在根目录中,请将 /hdwiki 修改为 /

rewrite ^(/hdwiki)/wiki/(.*)$ $1/index.php?doc-innerlink-$2 last;

其他服务器的rewrite规则,都是用正则表达式表示,写法略有不同

例如lighttpd的写法如下(http://kaiyuan.hudong.com/bbs/viewthread.php?tid=13353&highlight=rewrite)

url.rewrite = (

"^(.*)\/(attachment|category|comment|doc|edition|list|pms|reference|search|synonym|user|plugin|admin|pic|gift)([^\/]*)$" => "$1/index.php?$2$3"

)

5、伪静态的缺点

流量稍大一些使用伪静态就出现CPU使用超负荷,由于伪静态是用正则判断而不是真实地址,分辨到底显示哪个页面的责任也由直接指定转由CPU来判断了,所以CPU占有量的上升,确实是伪静态最大的弊病. 不过对于流量不大,但需要收录量的个人站点来说,伪静态算是个不错的选择

6、关闭hdwiki伪静态

当伪静态无法正常使用时,部分用户反映无法正常登录到后台关闭伪静态,新补丁中确保开启rewrite伪静态也能正常登录,可下载4.1的补丁包对于没有升级或没有打补丁的而无法登陆的同学,可以使用工具箱登陆到后台

主持人:

感谢光明的精彩回答,本次讲座到此结束。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有