我有一組重寫規則,應該處理一個URL,該URL有1到5個參數。因此,我的網址可能如下所示: www.site.com/topic1/page1或www.site.com/topic1/sub1/page1。htaccess URL重寫規則的問題,查詢字符串被追加到結果URL
這裏是我的規則,在這個例子中:
RewriteRule ^([^/.]+)/?$ /staticpages/process-selection.php?param1=$1 [E=rwdone:yes,L]
RewriteRule ^([^/.]+)/([^/.]+)/?$ /staticpages/process-selection.php?param1=$1¶m2=$2 [E=rwdone:yes,L]
RewriteRule ^([^/.]+)/([^/.]+)/([^/]+)/?$ /staticpages/process-selection.php?param1=$1¶m2=$2¶m3=$3 [E=rwdone:yes,L]
RewriteRule ^([^/.]+)/([^/.]+)/([^/]+)/([^/]+)/?$ /staticpages/process-selection.php?param1=$1¶m2=$2¶m3=$3¶m4=$4 [E=rwdone:yes,L]
RewriteRule ^([^/.]+)/([^/.]+)/([^/]+)/([^/]+)/([^/]+)/?$ /staticpages/process-selection.php?param1=$1¶m2=$2¶m3=$3¶m4=$4¶m5=$5 [E=rwdone:yes,L]
更復雜的是,我可能有一個從舊的URL重定向到301新的網址之一。所以「/ topic1/page1/oldpage」可能會首先被重定向到「/ topic1/page1/newpage」。
出於某種原因,當重寫發生時,在瀏覽器中顯示的網址具有正確的URL,但與附加到這樣的URL老變量: /TOPIC1 /第1頁/ NEWPAGE參數1 = 1頁& param2 = oldpage
我想知道是否有任何方法可以避免這種情況。我在這裏做錯了什麼。
非常感謝您的意見。我能夠通過將我的重定向301代碼更改爲RewriteRule^url [R = 301,L]來解決問題。最後沒有看到奇怪的參數附加到我的瀏覽器網址。 – Waylien 2010-08-12 04:14:17