我使用map指令进行重定向。 我设置了一些通配符,但它不起作用:
/notizie~* /news;
我希望所有网址都像" / notizie / $ string"应该重定向" / news"。
出了什么问题?
答案 0 :(得分:1)
如果您只需要使用301 HTTP代码进行重定向,则可以将location
与regexp一起使用:
location ~* ^/notizie(.*)$ {
return 301 $scheme://$host/news$1;
}
~*
- 标识不区分大小写的正则表达式
$1
- 指的是第一个括号中捕获的匹配
return
- 停止请求处理结束返回给定代码和url
$host
- 是预定义的变量,如果您愿意,可以对其进行硬编码
答案 1 :(得分:1)
如果查询参数对您的重定向很重要:
map $request_uri $redirect_uri {
~^/notizie(?<suffix>.*)$ /news$suffix;
default $request_uri;
}
否则:
map $uri $redirect_uri {
~^/notizie(?<suffix>.*)$ /news$suffix;
default $uri;
}