我试图重写一些显示为404的网址,但是我无法让重写工作。网址看起来像/ossobuco-alla-milanese/1451114854360.1451114854360?time=1451114851111
。我想通过重写删除1451114854360.1451114854360?time=1451114851111
。
在我的nginx配置中,我有以下重写规则
rewrite "^\/(.*)\/(\d{13}\.\d{13}\?time=\d{13})$" /$1/ permanent;
我在2个在线正则表达式工具regex101和regex pal中对正则表达式进行了测试,它应该可以正常运行,但似乎无法在我的服务器上运行。
答案 0 :(得分:1)
要匹配查询字符串,请使用$args
:
location / {
if ($args ~* "^time=\d+") {
set $args '';
rewrite "^/(.+)/\d+\.\d+/?$" /$1 permanent;
}
}
PS:如果您只想匹配13digits.13digits
,请使用:
rewrite "^/(.+)/\d{13}\.\d{13}/?$" /$1 permanent;
答案 1 :(得分:0)
最后它只是一个非常简单的位置块而且?删除了args。
tidyr