如何将具有自定义请求(而非文件夹)的用户重定向到根文件夹?

时间:2019-01-07 09:16:01

标签: nginx

我需要将一个Facebook ID链接(https://example.com/?fbclid=some_gibberish_text)重定向到我的根文件夹。我正在使用return 301,但没有结果。以下是我在nginx.conf中的配置:

location ^~ /?fbclid=(.*) {
    return 301 https://example.com;
}

我是Nginx的新手。我该如何实现?

谢谢。

1 个答案:

答案 0 :(得分:0)

请求参数在<table> <tr> <th>Name</th> <th>Up</th> <th>Down</th> <th>Name</th> </tr> <tr> <td>A</td> <td>700</td> <td>170</td> <td>Aa</td> </tr> <tr> <td>B</td> <td>435</td> <td>100</td> <td>Bb</td> </tr> <tr> <td>C</td> <td>500</td> <td>175</td> <td>Cc</td> </tr> <tr> <td>D</td> <td>350</td> <td>170</td> <td>Dd</td> </tr> <tr> <td>E</td> <td>1980</td> <td>350</td> <td>Ee</td> </tr> <tr> <td>F</td> <td>2000</td> <td>180</td> <td>Ff</td> </tr> </table>块中不匹配。匹配是针对没有参数(location)部分的规范化URI执行的。以您的示例为例,您尝试将请求从根文件夹重定向到同一根文件夹。根据您的实际需求,可以将任何包含?arg1=value1&arg2=value2...参数的请求重定向到您网站的根目录:

fbclid

或者,如果您想从后端隐藏此参数,只需删除它:

if ($arg_fbclid) {
    return 301 https://example.com;
}

(此复杂的regex会删除相应的请求参数,无论该参数位于请求字符串的开头,中间还是结尾)。

将这些结构之一放在您的if ($args ~ (.*)(^|&)fbclid=[^&]*(\2|$)&?(.*)) { set $args $1$3$4; } 块的外部