我们正在获得大量的流量到我们的主要网站在以下模式。参数是不同的一切这是搞乱了我的缓存。我需要做重定向:
这些将重定向到/?lang=zh-hans
/?lang=zh-hans&category=26%2C27&full=1&mo=9&yr=2022&id=1800312749
/?lang=zh-hans&category=26%2C27&full=1&mo=8&yr=2022&id=111871000
/?lang=zh-hans&id=1930613962&category=26%2C27&full=1&mo=10&yr=2022
/?lang=zh-hans&category=26%2C27&full=1&mo=08&yr=2022&id=1205387849
这些将重定向到/?lang=zh-hant
/?lang=zh-hant&category=26%2C27&full=1&mo=9&yr=2022&id=1800312749
/?lang=zh-hant&category=26%2C27&full=1&mo=8&yr=2022&id=111871000
/?lang=zh-hant&id=1930613962&category=26%2C27&full=1&mo=10&yr=2022
/?lang=zh-hant&category=26%2C27&full=1&mo=08&yr=2022&id=1205387849
为了避免复杂性,我只需要在根路径上执行此操作。
这是我在nginx上尝试过的,但是不起作用。
rewrite ^/?lang=zh-hans&category=.+ /?lang=zh-hans permanent;
1条答案
按热度按时间2ledvvac1#
如果我没理解错的话,你需要把所有以
/?lang=zh-hant…
开头的请求重定向到/?lang=zh-hant
,把所有以/?lang=zh-hans…
开头的请求重定向到/?lang=zh-hans
,忽略其他GET参数。这里,在
map
部分,我们告诉nginx
检查$request_uri是否以?lang=zh-hans&
或?lang=zh-hant&
子字符串**开头,并将相应的值设置到$redirect
变量中.然后在server
部分,我们告诉nginx
检查$redirect
是否存在,如果存在,则返回301 redirect,并从该变量返回位置.请注意,仅当
lang
参数是$request_uri
中的第一个参数时,这才起作用,即对/?lang=zh-hant&category=26%2C27&full=1
的请求将被重定向,但/?category=26%2C27&lang=zh-hant&full=1
将在 * 不 * 重定向的情况下被处理