nginx重写位置中的规则

nginx重写位置中的规则,nginx,rewrite,Nginx,Rewrite,我必须重定向以下url: http://wwww.domain.de/dynamic_subdir1/subdir2/subdir3/?querysting 到 在我的配置中: location ^~ /subdir2/subdir3/ { rewrite ^/(.+?)/subdir2/subdir3/ /$1/static_dir/subdir2/subdir3/file.php?$args break; } 但我总是会遇到500个内部错误,在错误日志中我可以看到以下内容: re

我必须重定向以下url:

http://wwww.domain.de/dynamic_subdir1/subdir2/subdir3/?querysting

在我的配置中:

location ^~ /subdir2/subdir3/ {
   rewrite  ^/(.+?)/subdir2/subdir3/ /$1/static_dir/subdir2/subdir3/file.php?$args break;
}
但我总是会遇到500个内部错误,在错误日志中我可以看到以下内容:

rewrite or internal redirection cycle while internally redirecting

我的配置出了什么问题?

我想你就快到了。假设您正试图重写此代码(例如,不发出HTTP
重定向
),请尝试锚定您的regexp:

   rewrite  ^/(.+?)/subdir2/subdir3/$ /$1/static_dir/subdir2/subdir3/file.php?$args break;

请注意第一个模式末尾的
$

我认为这实际上是需要锚定的位置。但是,这是一种为路径指定
索引的过于复杂的方法。
   rewrite  ^/(.+?)/subdir2/subdir3/$ /$1/static_dir/subdir2/subdir3/file.php?$args break;