【问题标题】:How to rewrite the url of a webpage in IIS UrlRewriteModule with web.config?如何使用 web.config 在 IIS Url Rewrite Module 中重写网页的 url?
【发布时间】:2016-12-30 16:57:40
【问题描述】:

我搜索消除 html 文件扩展名的规则(或一组规则) 但同时能够像下面的示例一样重写浏览器 url:

category1_pageid2.html 到 categories_page(对 seo 更友好)

我有一个带有 IIS_UrlRewriteModule 7.1.1952.0 的 IIS 8.5 的共享主机环境

非常感谢您的帮助

【问题讨论】:

  • 它是否需要支持一组单词从单数转换为复数(例如,categorycategories)还是仅支持一个实例?
  • 你的意思是多页的单词数组?如果是,Sam 你有一个 web.config 示例,我该如何实现它?

标签: php html iis seo web-config


【解决方案1】:

在 IIS 中,我创建了一个新规则:

然后在下一个对话框中,我添加了一个 Pattern categories_page{QUERY_STRING} 匹配模式 c=(\d+)&p=(\d+) 的条件(尽管您可能不需要查询字符串 - 自定义根据您的需要)。对于 Action,我添加了一个 Rewrite URL category{C:1}_pageid{C:2}.html。如果您不需要查询字符串,则可以取消选中 附加查询字符串 的复选框。

查看站点的 web.config 文件,我看到下面的 XML:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="category-page">
                    <match url="categories_page" />
                    <action type="Rewrite" url="category{C:1}_pageid{C:2}.html" />
                    <conditions>
                        <add input="{QUERY_STRING}" pattern="c=(\d+)&amp;p=(\d+)" />
                    </conditions>
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

在浏览器中尝试此操作时,当我导航到 localhost/categories_page?c=1&amp;p=2 时看到 category1_pageid2.html 页面:

其他选项包括rewrite map - 请参阅this answer 了解简短说明。

【讨论】:

  • 非常感谢山姆的详细回答。最后一个问题......这可能是共享托管环境吗?我无法在 IIS 8.5 中创建入站规则,因为我没有访问 IIS 管理的权限。 web.config 是否可以在不创建入站规则的情况下工作?
  • 我实际上没有在共享主机环境中尝试过,所以我不确定。我知道 UI 对话框列出了 inbound ruleweb.config 文件中的 xml 不包含该关键字,所以我认为应该没问题...¯\_ (ツ)_/¯
猜你喜欢
  • 1970-01-01
  • 2017-08-23
  • 1970-01-01
  • 2011-05-23
  • 2017-07-09
  • 2019-11-20
  • 1970-01-01
  • 2016-11-03
  • 2014-04-05
相关资源
最近更新 更多