[英]Mod Rewrite Appending Query String Parameters, Not Replacing
我正在嘗試生成涉及一些特定任務的外部重定向。
示例:我的網址為http://foobar.com/?a=123&b=456&c=blah
首先,如果參數c = blah
,則重定向到http://barfoo.com/
其次,用x
參數替換a
,使最終URL為http://barfoo.com/?x=123&b=456&c=blah
在研究了http://mod-rewrite-cheatsheet.com/和mod_rewrite的隱藏功能之后,這是我迄今為止的最佳猜測
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.foobar\.com$ [NC]
RewriteCond %{QUERY_STRING} ^a=(.*)&b=(.*)&c=blah$ [NC]
RewriteRule ^(.*)$ http://barfoo.com/?x=%1&b=%2&c=blah [NC,L,QSA,R=301]
但是,URL追加了查詢字符串,而不是替換。
我被重定向到http://barfoo.com/?x=123&b=456&c=blah&a=123&b=456&c=blah
打ack的額頭
從標志中刪除QSA
解決了該問題。 QSA
意思是“將現有查詢字符串追加到當前重寫規則中”。 它忽略您要添加的任何新查詢字符串參數。
我認為需要為重寫規則本身提供查詢字符串參數。
RewriteRule ^(.*)$ http://barfoo.com/?x=%1&b=%2&c=blah [NC,L,R=301]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.