簡體   English   中英

Mod重寫追加查詢字符串參數,不替代

[英]Mod Rewrite Appending Query String Parameters, Not Replacing

我正在嘗試生成涉及一些特定任務的外部重定向。

  1. 如果在URL中找到特定的查詢字符串值,請重定向。
  2. 如果重定向,則替換查詢字符串參數名稱之一,而不替換其值。
  3. 如果#1為假,則忽略重寫並繼續

示例:我的網址為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM