Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重写url末尾数字的Nginx规则_Url_Nginx_Rewrite - Fatal编程技术网

重写url末尾数字的Nginx规则

重写url末尾数字的Nginx规则,url,nginx,rewrite,Url,Nginx,Rewrite,我找不到转换此url的方法: 对此 谢谢你帮我 在此之后,我提出了这个解决方案,但它不起作用: 重写^/(../(../[0-9]+)-(.*)ttps://domain.com/$1/$2/$3永久性 因为它现在指向这个: ttps://domain.com/12345 感谢您的帮助您的问题有点含糊不清,我无法判断您是否需要重定向、重写或您的nginx配置对于/whatever/mylink是什么样子 但是,假设您只想将/which/(insert number)-mylink重定向到您自

我找不到转换此url的方法:

对此

谢谢你帮我

在此之后,我提出了这个解决方案,但它不起作用:

重写^/(../(../[0-9]+)-(.*)ttps://domain.com/$1/$2/$3永久性

因为它现在指向这个:

ttps://domain.com/12345


感谢您的帮助

您的问题有点含糊不清,我无法判断您是否需要重定向、重写或您的nginx配置对于/whatever/mylink是什么样子

但是,假设您只想将/which/(insert number)-mylink重定向到您自己的站点sans(insert number),以下内容应该会让您走上正确的道路:

location ~ "^/en/whatever/([0-9]+)-mylink" {
     rewrite ^(.*) http://192.168.99.100:8080/en/whatever/mylink;
}
location ~ ^/en/whatever/mylink {
    rewrite ^(.*)$ http://www.yahoo.com;
}
我用nginx旋转了一个Docker容器。我修改了/etc/nginx/conf.d/default.conf文件并添加了这几行。我的docker容器在那个内部IP上运行,所以你需要根据自己的IP进行调整

如果你点击mylink,它会将其改写为mylink,然后直接转到yahoo

再说一次,你的问题很模糊,但我猜你想要这样的东西

编辑: 在阅读您的评论之后,您似乎需要在重写中捕获正则表达式参数。你可以通过第一个$1,第二个$2,依此类推。下面是一个与您的用例更相关的示例。同样,这只是对default.conf的攻击:

location / {
    rewrite ^/en/(.*)/(.*)/([0-9]+)-mylink http://192.168.99.100:8080/en/$1/$2/mylink;
    root   /usr/share/nginx/html;
    index  index.html index.htm;
}

location ~ ^/en/whatever/whatevs/mylink {
    rewrite ^(.*)$ http://www.yahoo.com;
}

如果你把这个问题转过来,转到/en/whatever/whatevs/12345 mylink,你就会重定向到yahoo。

你的问题有点模糊,我不知道你是否想要重定向、重写或者你的nginx配置对于/whatever/mylink是什么样子

但是,假设您只想将/which/(insert number)-mylink重定向到您自己的站点sans(insert number),以下内容应该会让您走上正确的道路:

location ~ "^/en/whatever/([0-9]+)-mylink" {
     rewrite ^(.*) http://192.168.99.100:8080/en/whatever/mylink;
}
location ~ ^/en/whatever/mylink {
    rewrite ^(.*)$ http://www.yahoo.com;
}
我用nginx旋转了一个Docker容器。我修改了/etc/nginx/conf.d/default.conf文件并添加了这几行。我的docker容器在那个内部IP上运行,所以你需要根据自己的IP进行调整

如果你点击mylink,它会将其改写为mylink,然后直接转到yahoo

再说一次,你的问题很模糊,但我猜你想要这样的东西

编辑: 在阅读您的评论之后,您似乎需要在重写中捕获正则表达式参数。你可以通过第一个$1,第二个$2,依此类推。下面是一个与您的用例更相关的示例。同样,这只是对default.conf的攻击:

location / {
    rewrite ^/en/(.*)/(.*)/([0-9]+)-mylink http://192.168.99.100:8080/en/$1/$2/mylink;
    root   /usr/share/nginx/html;
    index  index.html index.htm;
}

location ~ ^/en/whatever/whatevs/mylink {
    rewrite ^(.*)$ http://www.yahoo.com;
}

如果你把这篇文章编出来,转到/en/whates/whatevs/12345 mylink,你将重定向到雅虎。

很抱歉我的问题含糊不清,谢谢你的帮助。我需要的是这些链接上的永久重定向。问题是/en/whatever/子文件夹可能有许多不同的命名方式。不知道我是否解释了我自己,但是/en/whatever/may-be/es/cosa/或许多其他正则表达式。所以“mylink”可以是任何其他单词。你能帮忙吗?谢谢。编辑了我的答案,展示了如何用$1、$2等捕捉正则表达式的值。抱歉我的问题含糊不清,谢谢你的帮助。我需要的是这些链接上的永久重定向。问题是/en/whatever/子文件夹可能有许多不同的命名方式。不知道我是否解释了我自己,但是/en/whatever/may-be/es/cosa/或许多其他正则表达式。所以“mylink”可以是任何其他单词。你能帮忙吗?谢谢。编辑了我的答案,展示了如何用$1、$2等捕捉正则表达式值