您的位置:首页 > 运维架构 > Apache

discuz插件伪静态如何设置,根据独游魔盒设置经验进行讲解

2017-03-28 15:31 288 查看
刚开始的时候也是没打算做伪静态的,因为我不是程序员出身,虽然懂一点代码,但是对于伪静态的实现还是不大了解。但是一个栏目做了一年之后,百度还是没有收录(在创建栏目之初就已经被谷歌收录,这里可以看出来百度的算法还是不太完善),于是决定进行伪静态改造。

这里问题就来了,怎么改,完全一头雾水啊,没办法各种找教程,但是通过修改apache配置文件之后,页面显示的还是动态链接,并不是修改之后的静态化地址。反复尝试之后还是这样,于是我就放弃了一段时间,重新找视频教程,研究php伪静态是如何实现的,最终终于被我实现成功了!

伪静态前的代码:域名:/onemary_video-list.html?catid=5&page=4

伪静态后的代码:http://www.xmohe.com/videolist_5_2_4.html

 

这里说一下具体实现的思路,想直接看实现代码的可以跳过这一段。

其实通过我后来的学习发现,我之前做的直接在apache服务器端用.htaccess配置伪静态的规则其实并没有错,只是只配置这个文件,并没有完成所有工作,除了在服务器端进行伪静态规则的配置之外,网站url的输出也是要进行配置的,这里说一下伪静态的实现原理吧1

http://www.xmohe.com/videolist_5_2_4.html这个网址为例,当你访问这个地址的时候,其实就是你的浏览器,向这个网站的服务器发送一个请求,请求这个页面,当apache接收到这个请求的时候,先将他分配到指定的目录,比如我网站的目录在www/bbs ,那么他就会先调取bbs目录下的.htaccess文件,访问里面的配置文件,比如下面这个

 

#  RewriteEngine 模式打开

RewriteEngineOn

# 目录地址

RewriteBase /

#用于万美视频

RewriteCond%{QUERY_STRING} ^(.*)$

RewriteRule ^videolist_([0-9]+)_([0-9]+)\.html$  plugin.php?id=onemary_video:catid=$1&page=$2%1
 

当我们发送http://www.xmohe.com/videolist_5_2_4.html这个请求的时候,服务器就自动一条一条匹配你的伪静态规则,当匹配到上面代码中这一条的时候(其实还有很多别的规则,这里只列出举例说明的这一部分),匹配成功,就会将请求发送给后面的这个地址plugin.php?id=onemary_video:catid=$1&page=$2%1,最终还原成plugin.php?id=onemary_video:catid=5&page=4,然后将这个地址生成的内容返回给你的浏览器,这样你就看到页面啦!

上面这个步骤就实现了伪静态的响应,但是这个时候你会发现一个问题,就是访问伪静态网址可以正常响应了,但是直接在网站显示的网址,还是动态网址。这一部分就需要对网站的程序或者模板进行修改了。因为我是修改discuz的插件伪静态,所以这里只需要更改discuz插件模板里的网址规则就行啦(ps.discuz具有完善的模板规则,所有的插件安装目录都有一个templets文件夹,直接在这里就能修改啦),我将模板里动态地址的部分,全部修改成了静态地址的形式,更新缓存后,就生效了。

如果你对php和变量完全不了解的话,强烈建议不要自己胡乱尝试修改,因为很有可能导致模板失效。

如果你和我一样是个喜欢探索的人的话,那我建议你在修改模板之前,先将模板做一个备份,然后复制一份新的进行修改,这样如果你修改错了,也可以通过用原始模板覆盖的方法来恢复模板功能,然后再慢慢找原因。

 

希望你和我一样,在这条道路上能一直走下去,不忘初心。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  apache php discuz
相关文章推荐