2013-08-02 60 views
0

我想了解一些規則或重寫引擎,但我不知道如何去做。如何重寫引擎規則

我有此鏈接:

w**.example.com/index.php?city=new+york 

,我希望改寫這一新:

w**.example.com/good-parties-in-new-york 

城市價值可以換到其他城市。 但這裏的關鍵是我只有重寫什麼,如果所有的關鍵是:

的index.php城市=

因爲

的index.php區=

用於其他的東西等... 任何建議?謝謝。

回答

0

我對你想達到的目標有點困惑。 URL重寫通常是爲了使URL看起來更好,而不是相反。

您通常希望有一個漂亮的URL這樣的(這你到你的用戶進行溝通):

w**.example.com/good-parties-in-new-york 

充當一個「別名」像這樣的不那麼好看的網址(=實際的頁面被服務,不知情的用戶):

w**.example.com/index.php?city=new+york 


隨着重寫,您可以反向引用的正則表達式。在這種情況下,您可以將「好」網址的部分內容轉換爲RegEx,然後您可以使用後臺工作頁面的查詢字符串中的變量進行反向引用。

例如爲:

RewriteEngine On 

RewriteBase/
RewriteRule ^good-parties-in-([a-z]+)-([a-z]+)$ index.php?city=$1+$2 [NC,L] 

第一正則表達式(([a-z]+))作爲$1被引用時,第二個作爲$2(等)。

請注意,此示例僅適用於由兩個詞組成的城市名稱,如紐約,舊金山等。您必須計算城市名稱可包含多少個單詞並相應地重寫您的代碼。 (您可能還必須設置不同的標誌。)

另外,您應該確保您的php腳本檢查現有的城市名稱並引發相應的錯誤/如果用戶輸入幻想名稱(如好夥伴)魔幻般的彩虹城市或類似城市。

如果這不是你要找的,也許你可以澄清你的問題?