我需要将一个Facebook ID链接(https://example.com/?fbclid=some_gibberish_text)重定向到我的根文件夹。我正在使用return 301,但没有结果。以下是我在nginx.conf中的配置:
location ^~ /?fbclid=(.*) {
return 301 https://example.com;
}
我是Nginx的新手。我该如何实现?
谢谢。
答案 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;
}
块的外部。