我需要使用nginx重写来重写旧的url。 查询string有一个问题。 如果旧url具有查询string参数,redirect不起作用。 我目前的configuration:
map $request_uri $newuri { /old-url/path /new-url/path; } server { location / { if ($newuri) { return 301 $newuri; } } }
您的map
语句在$request_uri
上执行string匹配。 variables$request_uri
还包含查询string。 如果你想匹配和不匹配查询string,你应该只匹配$request_uri
的前面,这可以使用正则expression式语法来完成:
map $request_uri $newuri { ~*^/old-url/path /new-url/path; }
详情请参阅此文件 。