Php 如何使用web.config在IIS URLEwriteModule中重写网页的url?

Php 如何使用web.config在IIS URLEwriteModule中重写网页的url?,php,html,iis,seo,web-config,Php,Html,Iis,Seo,Web Config,我搜索消除html文件扩展名的规则(或一组规则) 但同时能够重写浏览器url,如以下示例所示: category1_pageid2.html到categories_页面(更利于搜索引擎优化) 我有一个与IIS 8.5共享的托管环境,其中IIS_模块为7.1.1952.0 非常感谢您在IIS中的帮助,我创建了一个新规则: 然后在下一个对话框中,我添加了一个模式类别页面,其中包含{QUERY\u STRING}匹配模式c=(\d+)&p=(\d+)(尽管您可能不需要查询字符串-根据需要自定义)。对

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

category1_pageid2.html到categories_页面(更利于搜索引擎优化)

我有一个与IIS 8.5共享的托管环境,其中IIS_模块为7.1.1952.0


非常感谢您在IIS中的帮助,我创建了一个新规则:

然后在下一个对话框中,我添加了一个模式类别页面,其中包含
{QUERY\u STRING}
匹配模式
c=(\d+)&p=(\d+)
(尽管您可能不需要查询字符串-根据需要自定义)。对于操作我添加了一个重写URL
category{C:1}\u 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>


其他选项包括-see以获得简短的解释。

是否需要支持从单数到复数的单词数组(例如,从类别到类别)或仅支持一个实例?是指多页的单词数组?如果是,Sam,你有一个web.config示例来说明如何实现它吗?非常感谢你的详细回答Sam。最后一个问题……是否可能是共享托管环境?我无法在IIS 8.5中创建入站规则,因为我没有访问IIS管理的权限。web.config是否可以在不创建入站规则的情况下工作?实际上,我还没有在共享主机环境中尝试过它,所以我不确定。我知道UI对话框列出了入站规则,但web.config文件中的xml不包含该关键字,所以我认为应该可以。。。¯\_(ツ)_/¯