Apache 的 mod_rewrite 模块中有一个名为 RewriteMap 的功能。该功能允许调用外部程序来处理重定向(允许更复杂的重定向)。
Nginx 是否有等效功能?我查看了 HttpMap 和 rewrite 模块,但都找不到实现此功能的方法。
任何指点都将十分有帮助。
答案1
Martin F 是正确的,没有确切的实现。但是您可以通过多种方式进行此类设置。您需要在线搜索,但我可以为您指明正确的方向。我猜您需要以某种方式重新实现您的设置。
将 URL 重写为外部脚本,就像 WordPress 处理其 SEO URL 的方式一样。如果您采用这种方式,请查看 try_files。实际上,无论您的脚本语言是什么,这可能是最快的方法。例如...
try_files $uri $uri/ /rewritescript.php?q=$uri&;
NginxHttpMapModule,查看我找到的一些示例http://www.ruby-forum.com/topic/197405
包括,检查这个帖子http://forum.nginx.org/read.php?2,14117,14321#msg-14321
如果您了解 C,您可以创建一个 nginx 插件。
答案2
没有完全相同的。
您必须使用第三方模块(例如 lua 模块)来处理高级逻辑。