【问题标题】:IIS server url rewriteIIS 服务器 url 重写
【发布时间】:2020-05-14 02:57:07
【问题描述】:

例如,我有一个域 example.com,我的服务器 IP 是 1.1.1.1,它在 Windows Server 2016 Datacenter 上运行 Microsoft IIS 服务器
DNS 记录为A *.example.com 1.1.1.1
我想做服务器,1.1.1.1显示C:\inetpub\*下的内容
如果目录不存在,服务器应该返回 404 错误。

例如:

  • 文件系统:
|--C:\
    |-- inetpub\
        |-- a
        |-- b
        |-- c

将结果:

  • a.example.com 显示以下内容 C:\inetpub\a
  • b.example.com 显示以下内容 C:\inetpub\b
  • c.example.com 显示以下内容 C:\inetpub\c
  • d.example.com 返回 HTTP/1.1 404 Not Found

谢谢。

【问题讨论】:

    标签: iis webserver


    【解决方案1】:

    请将这些文件夹映射为您网站下的虚拟目录。

    例如:/a->c:\inetpub\a。 /b->c:\inetpub\b.

    然后你就可以轻松地将 a.example.com/test.aspx 重写为 a.example.com/a/test.aspx。如果文件夹不存在。然后 d.example.com/d/ 只会返回 404。

    <rule name="rewrite">
        <match url="(.*)" />
            <conditions>
               <add input="{HTTP_HOST}" pattern="(.*)\.example\.com" />
            </conditions>
        <action type="Rewrite" url="{C:1}/{R:1}" />
    </rule>
    

    【讨论】:

    • 谢谢。但是有什么方法可以删除 a.example.com/ a/ test.aspx 中的a/ 吗?
    • 为什么要删除“a/”? a.example.com/a/test.aspx 只会显示在服务端,浏览器中的url不会包含“a/”
    猜你喜欢
    • 1970-01-01
    • 2017-03-07
    • 1970-01-01
    • 2011-08-08
    • 1970-01-01
    • 1970-01-01
    • 2011-07-01
    • 1970-01-01
    • 2011-12-31
    相关资源
    最近更新 更多