gpt4 book ai didi

apache - %(百分号)在 Apache 的 httpd.conf 中有什么作用?

转载 作者:行者123 更新时间:2023-12-03 09:30:16 26 4
gpt4 key购买 nike

好的,我从 http://httpd.apache.org/docs/2.0/misc/rewriteguide.html 看到以下示例.是否%{}使 Apache 将这两个分隔符之间的字符串解释为 Apache 变量?这个功能在哪里记录?

RewriteCond %{HTTP_HOST}   !^www\.example\.com [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{SERVER_PORT} !^80$
RewriteRule ^/?(.*) http://www.example.com:%{SERVER_PORT}/$1 [L,R,NE]

然后, http://httpd.apache.org/docs/2.2/configuring.html将使用 shell 变量描述为 ${ENVVAR} .有什么不同?

最佳答案

%{NAME_OF_VARIABLE}语法(不仅仅是 % 符号)只是 mod_rewrite 访问服务器变量( specific to mod_rewrite )的预定义列表之一的机制。正如 RewriteCond directive 所记录的那样.

无封闭%{ .. }然后 NAME_OF_VARIABLE被视为文字字符串。

要在 mod_rewrite 中访问环境变量,请使用以下语法:%{ENV:variable} . (其他语法 ${ENVVAR} 似乎也适用于此,但是,如果 ENVVAR 不存在,则行为会有所不同。如果 ENVAR 不存在,则 ${ENVVAR} 返回文字字符串“${ENVAR}” , 而 %{ENV:ENVAR} 返回一个空字符串。如果您在 RewriteCond 中使用重写映射,也可能会发生冲突,因为使用了类似的语法。即 ${mapname:key|default} - 尽管我认为 : 应该使这一点明确?)

关于apache - %(百分号)在 Apache 的 httpd.conf 中有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28290355/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com