从 URL 中删除查询字符串

从 URL 中删除查询字符串

我们有一个 magento 商店,当您在前端更改 Magento 商店视图时,它会将查询附加到我们的 URL。

IEhttp://www.domain.com/?___store=uken

有没有办法删除?___ 商店=uken使用 NGINX 配置?比如删除以以下开头的任何查询?___ 商店=。我对服务器配置和 nginx 特别陌生。

答案1

如果需要从 URL 中删除查询字符串 __store=,则必须清除变量$参数然后重写主要位置。

尝试使用此规则从 URL 中删除查询字符串:

location / {
    set $args '';
    rewrite ^/(.*)$ /$1 permanent;
}

或者如果你有一个如下的网站网址:http://www.mystore.com/shop/index.php?__store=en您可以使用以下方式重写新位置:

location /shop {
    set $args '';
    rewrite ^/shop/(.*)$ /shop/$1 permanent;
}

答案2

如果要从多个参数中删除特定参数:

if ($request_uri ~ "([^\?]*)\?(.*)_=([^&]*)&?(.*)") {
    set $original_path $1; 
    set $args1 $2; 
    set $unwanted $3; 
    set $args2 $4; 
    set $args ""; 

    rewrite ^ "${original_path}?${args1}${args2}" permanent;
}

相关内容