我有以下規則:的.htaccess規則優先
RewriteRule ^app ?page=app [QSA]
RewriteRule ^app/([0-9]+) ?page=app&id=$1 [QSA]
RewriteRule ^app/([0-9]+)/edit ?page=edit&id=$1 [QSA]
我的頁面打印GET PARAMS。當我打電話/應用程序,以下是印刷:
Array ([page] => app)
當我打電話/應用/ 123或/應用/ 123 /編輯,打印保持相同。但是,當我顛倒這些命令的順序時,我得到了不同的結果。
對於/應用/ 123 /編輯:
Array ([page] => edit [id] => 123)
對於/應用/ 123:
Array ([page] => app [id] => 123)
這是爲什麼?另外,有沒有辦法改變這種情況,因爲從頂部到底部的層次順序通過命令看起來更容易,而不是相反。提前致謝。
非常感謝。我會在10分鐘內接受你的回答。 – arik
雖然有一個問題:我怎麼能讓這部分/ [0-9] + /添加?id = $ 1 [QSA]部分到下面的所有頁面/應用程序中,而我不必明確地重複這一點?id = $ 1表達式在隨後的表達式? – arik
問題中的第二條和第三條規則應該得到使用,因爲從不指定L標誌。不知道他們爲什麼不這樣做,但你在這裏所做的只是迫使一條規則被遵守。 –