我有一个重写规则,它使用子域的值更改服务器变量.这适用于subdomain.mydomain.nl/somethinghere但不适用于subdomain.mydomain.nl
<rule name="Change code" enabled="true" patternSyntax="ECMAScript" stopProcessing="false">
<match url=".*" ignoreCase="true" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="true">
<add input="{SERVER_NAME}" pattern="(www\.)?(\w+)\.mydomain\.nl" />
<add input="{SERVER_NAME}" pattern="^www.mydomain.nl.*" negate="true" />
<add input="{SERVER_NAME}" pattern="^mydomain.nl.*" negate="true" />
</conditions>
<serverVariables>
<set name="MYVARIABLE" value="{C:2}" />
</serverVariables>
<action type="None" />
</rule>
Run Code Online (Sandbox Code Playgroud)
我测试了2个网址:1:subdomain.mydomain.nl/somethinghere 2:subdomain.mydomain.nl
我使用以下代码在PHP中检索变量:
echo $_SERVER['MYVARIABLE'];
Run Code Online (Sandbox Code Playgroud)
在URL 1的情况下,其输出是"子域".
在URL 2的情况下,其输出为"".
URL 1的输出是正确的,但URL 2的输出也应该是"子域".
我已经运行了两个请求的跟踪,它们都显示规则正在匹配和执行.
谁能帮我?