httpd Apache 服务器 -> mod_rewrite -> 反向引用

httpd Apache 服务器 -> mod_rewrite -> 反向引用

httpd Apache 服务器 -> mod_rewrite -> 反向引用

下图是关于理解对括号的引用(省略了[Flags])。

mod_rewrite 反向引用

如果使用括号,则会对括号中的内容建立反向链接,然后您可以在使用%1和的条件中的某个地方使用它$1

该图像的来源是 Apache httpd 2.2 的非官方文档
https://publib.boulder.ibm.com/httpserv/manual70/rewrite/rewrite_intro.html#InternalBackRefs

Apache 2.4 官方 httpd 文档中没有这样的图片
https://httpd.apache.org/docs/2.4/rewrite/intro.html#InternalBackRefs

这篇文章的本质只是为了验证我是否正确理解了它以及它是否在 httpd Apache 2.4 中起作用。

有人知道吗?

答案1

无论您使用的是 Apache 1.3、2.2 还是 2.4,这都是 mod_rewrite 工作的基本原理。所以,是的,它在 Apache 2.4 中的工作方式相同。

(尽管您发布的图表是基于 IBM 的“副本”(?),而不是 Apache 的“官方”文档,但由于不清楚指令的RewriteCond处理顺序(蓝色箭头),因此可以说含糊不清。自上而下还是自下而上?编辑:尽管你已经澄清这代表反向引用仅表示顺序,而非处理顺序。

该图像的来源位于 Apache httpd 2.2 的文档中
https://publib.boulder.ibm.com/httpserv/manual70/rewrite/rewrite_intro.html#InternalBackRefs

如上所述,这不是 Apache 2.2 的“官方”文档。2.2 版官方文档Apache 2.4包含相同的图表。这些图表和随附的文字描述了与上面概述的相同的过程。


IBM 文档中的图表(看起来像是 Apache 文档的早期“副本”,并且非常不完整)包含下图,您的图表似乎基于此:

IBM 图表

那条蓝线(向上来自RewriteRule 图案) 在我看来含糊不清 - 是先进入底部条件还是先进入顶部条件?我会修改该图表,使处理顺序更清晰一些。例如:

IBM 图表(修订版)

相关内容