IIS URL将QueryString参数重写为子域

svdrlsy4  于 2023-08-05  发布在  其他
关注(0)|答案(2)|浏览(127)

我需要使用QS参数重写URL作为子域:
大概是这样的:https://mysite.example/?subdomain=test&user=10042 => https://test.mysite.example/?user=10042
我发现的所有例子都将子域转换为QueryString(似乎更流行),所以没有找到有用的解决方案:我做了这样的东西,但它不工作

<rule name="QS to Subdomain">
 <match url=".*" >
 <conditions trackAllCaptures="true">
    <add input="{QUERY_STRING}" pattern="subdomain=([a-z0-9]+)" />  
 </conditions>
 <action type="Rewrite" url="{C:1}.mysite.example/" /> 
</rule>

字符串
请问如何实现?
谢啦,谢啦

nsc4cvqm

nsc4cvqm1#

你可以试试这个规则:

<rule name="QS to Subdomain">
  <match url=".*" >
    <conditions trackAllCaptures="true">
      <add input="{QUERY_STRING}" pattern="subdomain=([a-z0-9]+)&(.*)" />  
    </conditions>
  <action type="Rewrite" url="{C:1}.mysite.example/?{C:2}" /> 
</rule>

字符串

g2ieeal7

g2ieeal72#

我认为你可以通过以下方式实现你正在寻找的东西:

<rule name="QS to Subdomain" stopProcessing="true">
  <match url=".*" />
  <conditions>
    <add input="{QUERY_STRING}" pattern="subdomain=([^&amp;]+)" />
  </conditions>
  <action type="Rewrite" url="http://{C:1}.mysite.example/{R:0}" />
</rule>

字符串

  1. stopProcessing = true,以确保在找到匹配项后不处理其他规则。
    1.将正则表达式模式更新为subdomain=([^&amp;]+)

相关问题