discuz插件伪静态如何设置,根据独游魔盒设置经验进行讲解
剛開始的時候也是沒打算做偽靜態的,因為我不是程序員出身,雖然懂一點代碼,但是對于偽靜態的實現還是不大了解。但是一個欄目做了一年之后,百度還是沒有收錄(在創建欄目之初就已經被谷歌收錄,這里可以看出來百度的算法還是不太完善),于是決定進行偽靜態改造。
這里問題就來了,怎么改,完全一頭霧水啊,沒辦法各種找教程,但是通過修改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和變量完全不了解的話,強烈建議不要自己胡亂嘗試修改,因為很有可能導致模板失效。
如果你和我一樣是個喜歡探索的人的話,那我建議你在修改模板之前,先將模板做一個備份,然后復制一份新的進行修改,這樣如果你修改錯了,也可以通過用原始模板覆蓋的方法來恢復模板功能,然后再慢慢找原因。
?
希望你和我一樣,在這條道路上能一直走下去,不忘初心。
總結
以上是生活随笔為你收集整理的discuz插件伪静态如何设置,根据独游魔盒设置经验进行讲解的全部內容,希望文章能夠幫你解決所遇到的問題。