2013-07-23 192 views
0

這看起來很簡單,但它不適合我。 我想要show.php?id = $ 1和producer.php?id = $ 1重寫爲友好的URL。 第一個完美的作品,第二個沒有。如果我刪除第一個,第二個很好。htaccess多個頁面的重寫規則

我在這裏做錯了什麼?

我的代碼:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]*)\.html$ /show.php?id=$1 [L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]*)\.html$ /producer.php?id=$1 [L] 

</IfModule> 

提前感謝!

回答

0

你的問題很簡單。

對於同一個目錄,您不能有多個重寫規則,您需要爲每個IE都有一個單獨的文件夾。有一個名爲「show」的文件夾,並具有包含show的重寫數據的htaccess文件。

的.htaccess作秀文件夾:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]*)\.html$ /show.php?id=$1 [L] 

</IfModule> 

然後有一個名爲「生產者」與第二重寫規則另一個文件夾。

的.htaccess用於製作文件夾:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]*)\.html$ /producer.php?id=$1 [L] 

</IfModule> 
+0

謝謝。所以我需要將show.php和producer.php移動到一個文件夾中?這似乎是我的網站很多重組。 – Andrew

+0

是的,如果你想要的是你詢問的「友好」網址。重寫條件基本上消除了URL中的/producer.php。想想看,當你訪問http://yoursite.com/45並應用重寫規則時,無論你在瀏覽器中輸入什麼內容,你都將訪問http://yoursite.com/show.php?id=45因爲重寫規則只是第一個條件。希望這可以幫助。 – Luke

+0

它確實有幫助,但它並不好玩,因爲該網站已經構建並進行了模板化。這會讓我多一點工作。不過謝天謝地,至少我不必再把頭撞在牆上。 – Andrew