Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess Mod Rewrite追加查询字符串参数,不替换_.htaccess_Mod Rewrite_Redirect_Helicontech - Fatal编程技术网

.htaccess Mod Rewrite追加查询字符串参数,不替换

.htaccess Mod Rewrite追加查询字符串参数,不替换,.htaccess,mod-rewrite,redirect,helicontech,.htaccess,Mod Rewrite,Redirect,Helicontech,我正在尝试生成一个涉及一些特定任务的外部重定向 如果在URL中找到特定的查询字符串值,请重定向 如果重定向,请替换其中一个查询字符串参数名称,但不替换其值 如果#1为false,则忽略重写并继续 示例:我有url 首先,如果参数c=blah,则重定向到 其次,将a替换为x参数,这样最终的URL是 下面是我在研究和之后到目前为止最好的猜测 但是,URL是附加查询字符串,而不是替换 我被重定向到http://barfoo.com/?x=123&b=456&c=blah&a=123&b=456&c=b

我正在尝试生成一个涉及一些特定任务的外部重定向

  • 如果在URL中找到特定的查询字符串值,请重定向
  • 如果重定向,请替换其中一个查询字符串参数名称,但不替换其值
  • 如果#1为false,则忽略重写并继续
  • 示例:我有url

    首先,如果参数c=
    blah
    ,则重定向到

    其次,将
    a
    替换为
    x
    参数,这样最终的URL是

    下面是我在研究和之后到目前为止最好的猜测

    但是,URL是附加查询字符串,而不是替换

    我被重定向到
    http://barfoo.com/?x=123&b=456&c=blah&a=123&b=456&c=blah

    拍额头

    从标志中删除
    QSA
    解决了问题
    QSA
    意味着“将现有查询字符串附加到当前重写规则”。它忽略您正在添加的任何新查询字符串参数

    我认为重写规则本身需要有查询字符串参数

    RewriteRule^(.*)$http://barfoo.com/?x=%1&b=%2&c=blah [NC,L,R=301]

    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]