開啟PHP的偽靜態模式

2022-10-05 02:09:12 字數 2774 閱讀 9941

一直在做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」,將前面的」#」號刪除即可。

如果沒有查詢到,則www.cppcns.com到「loadmodule」 區域,在最後一行加入「loadmodule rewrite_module modules/mod_rewrite.so」(必選獨佔一行),然後重啟apache伺服器即可。

程式設計客棧2.在httpd.conf中配置虛擬主機

# virtual hosts 啟用虛擬主機

3.httpd_vhosts.conf檔案中,配置相應的選項.詳細講解

documentroot "c:/myenv/apache/htdocs/static3"

servername www.程式設計客棧hsp.com

#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

4.在相應的目錄下編寫.htaccess 重寫規則

例子:程式設計客棧dule rewrite_module>

rewriteengine on

rewriterule news-id(\d+).html$ show.php?id=$1

#這裡可以設定多個重寫的規則

#rewriterule news-id.html$ error.php

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

如果是在windows平台下,用記事本建立乙個檔案,比如abc.txt,然後另存為 .htaccess檔案即可

5.重寫規則,也可以直接在配置虛擬主機的段配置.

動態、靜態、偽靜態之間的利與弊(新)

動態**

首先,動態**目前對於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)。

本文標題: 開啟php的偽靜態模式

本文位址:

Apache開啟PHP的偽靜態模式

首先,什麼是偽靜態 偽靜態又名url重寫,是動態的 看起來像靜態的 換句話說就是,動態網頁通過重寫 url 方法實現去掉動態網頁的引數,但在實際的網頁目錄中並沒有必要實現存在重寫的頁面。1.檢測apache是否支援mod rewrite 通過php提供的phpinfo 函式檢視環境配置,通過ctrl...

開啟PHP的偽靜態

1.檢測apache是否支援mod rewrite 通過php提供的phpinfo 函式檢視環境配置,通過ctrl f查詢到 loaded modules 其中列出了所有 apache2handler已經開啟的模組,如果裡面包括 mod rewrite 則已經支援,不再需要繼續設定。如果沒有開啟 m...

apache開啟偽靜態的方法 php篇

loadmodule rewrite module modules mod rewrite.so possible values for the options directive are none all or any combination of indexes includes follows...