2011-10-14 134 views
0

我有兩個重寫規則,這就是我想要達到htaccess的簡單重寫規則被忽略

用戶鏈接 - >內部鏈接

site.com/dir1/dir2/ AB - mypage.php頁= ? - > site.com/dir1/dir2/script.php?code= AB &頁=

site.com/dir1/dir2/ CD -mypage.php - > site.com/dir1/dir2/script.php?code= CD

正如你所看到的,第二個是一樣的爲第一,但支持分頁。

這裏是htaccess的代碼:

RewriteRule ^dir1/dir2/(.*)-mypage.php?page=(.*)$ dir1/dir2/script.php?code=$1&page=$2 
RewriteRule ^dir1/dir2/(.*)-mypage.php$ dir1/dir2/script.php?code=$1 

分頁規則被完全忽略,沒有錯誤。在我的script.php中,當我打印查詢字符串時,唯一存在的變量是代碼。第二條規則也需要頁碼。

編輯: 櫃面任何人有這個問題,這可能幫助:問號的問題,如果我使用一個不同的字符它的工作原理,我得到兩個變量(?)。如果你不關心問號,這可能是一個解決方案。要保留問號,請使用接受的答案來解決。

回答

3

而不是使2條規則,使用[QSA](代表查詢字符串附加) - 將原來的查詢字符串附加到修改一:

RewriteRule ^dir1/dir2/(.*)-mypage.php$ dir1/dir2/script.php?code=$1 [QSA] 
+0

這解決了它的感謝。 – MrCode

0

查詢字符串被忽略。你不需要的第一條規則,只需使用QSA標誌:

RewriteRule ^dir1/dir2/(.*)-mypage.php$ dir1/dir2/script.php?code=$1 [QSA]