【问题标题】:IIS URL Rewrite subfolder to another folder nameIIS URL 将子文件夹重写为另一个文件夹名称
【发布时间】:2016-05-17 15:46:58
【问题描述】:

我有一个问题,如何通过创建 URL 重写规则来实现以下结果。在 wwwroot 上,我有文件夹 wordpress/demo 可以访问,例如www.example.com/wordpress/demo。 但是,我想使用 URL-Rewrite 规则在 www.example.com/example 下访问此页面。

我已经搜索了很多,但不幸的是,我还没有找到解决方案。你有什么想法吗?

【问题讨论】:

    标签: iis url-rewriting


    【解决方案1】:

    如果您还没有,请安装 URL Rewrite IIS 模块:

    http://www.iis.net/downloads/microsoft/url-rewrite

    安装后打开 web.config 文件并在 <system.webServer> 中粘贴以下代码:

            <rewrite>
                <rules>
                    <rule name="ExampleToDemo">
                        <match url="^(.*)example" />
                        <action type="Rewrite" url="wordpress/demo" />
                    </rule>
                </rules>
            </rewrite>
    

    我不确定您的结构,但这个应该可以。您也可以使用 IIS Url 重写模块中的“测试模式”功能对其进行测试。

    【讨论】:

    • 感谢您的回答。这也对我有用。我终于创建了一个虚拟文件夹,并将物理路径插入到虚拟文件夹中。这也对我有用。
    • 如果我想从 example.com/folder-name 重定向到 example.com/blog/folder-name,上述场景可能会失败。因为它只匹配可以存在于网站多个位置的文件夹名称
    【解决方案2】:

    对于更复杂的情况,您将 api 参数作为路由变量传递: 如果你使用IIS管理面板选择你的域,点击模块“URL Rewrite”。

    添加规则 -> 空白规则

    输入此规则的名称

    选择追加查询字符串

    Pattern: ^directoryfrom/([_0-9a-z-]+)/([_0-9a-z-]+)
    
    Rewrite URL: newsubdir/{R:1}/{R:2}
    

    结果:example.com/directoryfrom/{R:1}/{R:2} -> example.com/newsubdir/{R:1}/{R:2}

    您可能会猜到 r1 和 r2,这些是您可能传递的子文件夹,它们将被自动转换为变量。

    【讨论】:

      猜你喜欢
      • 2023-04-07
      • 2016-09-23
      • 2013-11-08
      • 2017-08-24
      • 1970-01-01
      • 2013-10-16
      • 2013-05-02
      • 2010-11-07
      • 1970-01-01
      相关资源
      最近更新 更多