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
Regex 一个用于所有位置路径的正则表达式,而不管nginx中的名称是什么?_Regex_Url_Mod Rewrite_Nginx - Fatal编程技术网

Regex 一个用于所有位置路径的正则表达式,而不管nginx中的名称是什么?

Regex 一个用于所有位置路径的正则表达式,而不管nginx中的名称是什么?,regex,url,mod-rewrite,nginx,Regex,Url,Mod Rewrite,Nginx,我们有一个angular应用程序托管在nginx上,它使用随机url路径。我正在尝试编写一个正则表达式来匹配它们,从而将它们重定向到一个公共index.html文件。 也就是说,所有的交通都要 domain.com/abc domain.com/xyz 应该全部转到index.html文件。 以下是我一直在尝试的: location ~* ^/[a-z](.+)$ { rewrite ^ /index.html last; try_files $uri $uri/ /index.html; }

我们有一个angular应用程序托管在nginx上,它使用随机url路径。我正在尝试编写一个正则表达式来匹配它们,从而将它们重定向到一个公共index.html文件。 也就是说,所有的交通都要

domain.com/abc
domain.com/xyz
应该全部转到index.html文件。 以下是我一直在尝试的:

location ~* ^/[a-z](.+)$ {
rewrite ^ /index.html last;
try_files $uri $uri/ /index.html;
}

这不管用。请帮忙。

这绝不是一个答案,但可能太长,无法发表评论

我想发生的是,重写规则正在启动,我不知道这是与您的规则还是与我建议的更改有关。可能发生的情况是,请求被重定向到/index.html,正如预期的那样,/index.html满足正则表达式,如图所示。这将导致一个无限循环,我认为这就是内部重定向循环的含义


要解决此问题,可以尝试以下操作:\/?!index\.html.+示例。这将确保index.html不是您要匹配的字符串的一部分。这将打破这个循环。

您提供的正则表达式需要匹配整个字符串。如果nginx为您提供domain.com/abc,则该表达式将不匹配。此外,也可能是需要转义的情况。也许像这样的办法行得通^\/[a-z]。+$。这是否匹配像-?另外,如果url是这样的:domain.com/abc/abc1字符集[a-z]应该表示a和z之间的任何小写字母,因此基本上是整个英文小写字母表。根据你的表达,在/之后的第一个字母必须是小写的英文字母。除此之外,.+$应该一直匹配任何字符,直到字符串结束。不幸的是,它没有匹配。这是根据日志文件:在处理/index.htmlI时重写或内部重定向循环尝试回答您的以下问题。请让我知道。