2012-03-21 76 views
1

我想了解重寫文件名的方式。我有一個名爲item.php的PHP文件。如果用戶選擇他獲得的項目,例如item-pencil.phpitem-book.php等等。根據項目名稱重寫URL

我在htaccess的發現:

RewriteEngine On 
RewriteBase /my/path 
RewriteRule ^item-.*-(.*).php show_item.php?id=$1 

誰能解釋這是如何工作的細節?文件show_item.php獲得id參數。此規則僅適用於路徑/my/path.*似乎代表字符的任意數字,(.*)意味着多次的probalby。但名稱pencilbook的名稱是從哪裏來的?

回答

1
RewriteEngine On 
RewriteBase /my/path 
RewriteRule ^item-.*-(.*).php show_item.php?id=$1 

說明:重寫規則檢查URL是否與給定模式匹配。模式表示URL(沒有主機和rewritebase部分)應以「item-」後面什麼.*,然後「 - 」,即任何字符允許(.*)後,然後一個字符.,其次是「PHP」,它可以有什麼最後。

所以,如果你輸入「http://www.yourdomain.com/my/path/item-www-ssss.php.php」在瀏覽器中,它認爲item-www-ssss.phpphpRewriteRule第一個參數。它適用於它的模式。並且它與給定的圖案匹配並且給定的圖案將被第二參數show_item.php?id=$1替代。因爲$1ssss,所以你的最終結果將是http://www.yourdomain.com/my/path/show_item.php?id=ssss.php
注意.php在網址的結尾。