Mam regułę przepisywania, która zmienia zmienną serwera o wartość poddomeny. Działa to na subdomain.mydomain.nl/somethinghere ale nie na subdomain.mydomain.nlPrzepisywanie zmiennej serwera w IIS 7.5
<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>
Ja testowałem 2 adresami: 1: subdomain.mydomain.nl/somethinghere 2: subdomain.mydomain.nl
odzyskać zmienną w PHP z następującego kodu:
echo $_SERVER['MYVARIABLE'];
W przypadku zawartości 1, wyjście to jest „subdomeny”.
W przypadku adresu URL 2 wynik to "".
Dane wyjściowe adresu URL 1 są poprawne, ale dane wyjściowe adresu URL 2 również powinny być "subdomeną".
Uruchomiłem ślad obu żądań, a oba pokazują, że reguła jest dopasowywana i wykonywana.
Czy ktoś może mi pomóc?
Dziękuję bardzo za odpowiedź, to jest rozwiązanie. Naprawdę dziwne, że nie mogłem znaleźć tego udokumentowanego czegokolwiek. – user1071188
Aby ustawić nagłówki żądań, konieczne jest dodanie adresu HTTP_. Jest to udokumentowane [tutaj] (http://learn.iis.net/page.aspx/665/url-rewrite-module-20-configuration-reference/#Setting_Server_Variables) (patrz "Uwaga o nagłówkach zgłoszeń"). Zastanawia mnie również, dlaczego ustawienie nagłówka żądania zawsze działa, ale ustawienie zmiennej serwera nie zawsze działa. –
Dzięki człowieku. Uratowałeś mi życie! –