2010-07-20 58 views
0

我打算在我的網站上使用大量的URL重寫,但我無法熟悉Apache的mod_rewrite,因爲它很難記錄,而且記錄不完整。使用PHP腳本來協助.htaccess mod_rewrite

我聽說有一些選項可以調用各種腳本進行重寫。你能幫我嗎?

+0

我通過將所有不包含點的請求重定向到一個php腳本來解決它。應該將其改爲「-f -d」 – 2010-08-05 15:16:36

回答

7

不要這樣做,至少不能不分青紅皁白。您可以將任何請求重定向到PHP並在那裏進行解析。這是一個誘人的選擇,但對性能來說太糟糕了,因爲每個資源的每個請求都有一個昂貴的PHP進程,包括圖像,樣式表等等。

只有當網站重寫很多時(例如網站移動或重組後),重定向到執行數據庫查找的PHP腳本纔有意義。但即使如此,你應該知道mod_rewrite的基礎知識,以決定將哪些請求重定向到該腳本。

mod_rewrite是非常好記錄,它只是需要一些進入。我建議在學習基礎知識。

一個很好的入門資源是this blog entry。有很多關於SO的很好的問題以及很多例子。官方文檔是here

+1

除非您的所有PHP腳本都有單一入口點(index.php),在這種情況下,這可能會提高性能,因爲對正則表達式執行的需求較少。但是,就這點而言,請始終使用-F標誌並排除不想動態提供的靜態內容類型(如果所有圖像都是靜態的,請排除任何以.png | gif | jpg結尾的請求)... – ircmaxell 2010-07-20 20:00:35

+0

@ircmaxell準確地爲那種信息,我認爲他需要至少了解URL重寫的基礎知識:) – 2010-07-20 20:01:40

+0

@ircmaxell,我不知道我要做什麼與網站,但最有可能的,它_will_有「單點入口」 – 2010-07-20 20:09:31

2

您可以使用RewriteMap來調用外部程序。但是,正如派卡在評論中所說的,你最好不要這樣做。這隻會讓它變得更加複雜和脆弱。 mod_rewrite是最好的文檔模塊之一,並且有大量的教程,從簡單到複雜。我做了大量的網站移動,有很多頁面和一個完全重構的URL模式。即使這些通常可以通過幾十條重寫規則來完成。

rewrite guide開始。