對具有查詢字符串的/
的任何請求都會導致404被觸發。我發現如果我在查詢字符串之前添加/shop/
,它將在內部重定向,並且不會觸發404。重定向到目錄,保留查詢字符串
我需要一個通用的mod_rewrite規則,將採取一個URL的形式:
http://www.example.com/?foo=bar
,重定向到:
http://www.example.com/shop/?foo=bar
在查詢字符串(可以是任何東西)被保留。
對具有查詢字符串的/
的任何請求都會導致404被觸發。我發現如果我在查詢字符串之前添加/shop/
,它將在內部重定向,並且不會觸發404。重定向到目錄,保留查詢字符串
我需要一個通用的mod_rewrite規則,將採取一個URL的形式:
http://www.example.com/?foo=bar
,重定向到:
http://www.example.com/shop/?foo=bar
在查詢字符串(可以是任何東西)被保留。
這將重定向(URL會改變)全部點擊進入ROOT(例如http://www.example.com/
),其具有查詢字符串爲http://www.example.com/shop/
。
RewriteEngine On
RewriteBase/
RewriteCond %{QUERY_STRING} !^$
RewriteRule ^$ http://www.example.com/shop/ [QSA,R,L]
這將改寫內部(URL會留在瀏覽器相同)全部點擊進入ROOT(例如http://www.example.com/
),其具有查詢字符串爲http://www.example.com/shop/
。
RewriteEngine On
RewriteBase/
RewriteCond %{QUERY_STRING} !^$
RewriteRule ^$ /shop/ [QSA,L]
我應該提到該網站是建立在Miva Merchant上的,並且/ shop /會自動重定向到/在內部。 RewriteRule的添加會導致無限重定向循環。我需要一個僅適用於帶查詢字符串的URL的規則,因爲查詢字符串在內部重定向到/時會被剝離。 – Jazzerus
@Jazzerus還有什麼其他的**「小細微的細微差別」**你有嗎?這已經改變了所有的**,並且不知道你現有的重定向是如何完成的(Miva Merchant),我所能想到的任何東西都只是一種「瘋狂猜測」。您必須查看您現有的重寫規則並找出其無效的原因。 – LazyOne
我想也許我的問題並不清楚。我需要一個僅在存在查詢字符串時才起作用的解決方案。如果用戶轉到example.com而沒有查詢字符串,則不應將其重定向到example.com/shop。 – Jazzerus
據我瞭解,你想有隻1重寫(不定向),所以當'/?富=請求bar'然後它實際上是'是被執行/店/?富= bar'(URL保持不變),對吧? – LazyOne
當任何*查詢字符串存在時,主頁'/'出於某種原因返回404,但'/ shop /'可以正常工作。重寫或重定向應該適用於任何數量的查詢參數和任何參數名稱,而不僅僅是「foo」。 – Jazzerus