如何将此 mod_rewite 规则转换为 IIS7 UrlRewrite

如何将此 mod_rewite 规则转换为 IIS7 UrlRewrite
Options +Indexes
Options +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteRule ^(.*)\.html$ $1.php [L]

我会在 Apache mod rewite 中使用它来使 index.html 实际上是 index.php

我如何在 IIS 中执行此操作?

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <directoryBrowse enabled="false" />
        <defaultDocument>
            <files>
                <clear />
                <add value="Default.htm" />
                <add value="Default.asp" />
                <add value="index.htm" />
                <add value="Default.aspx" />
                <add value="index.html" />
                <add value="index.php" />
            </files>
        </defaultDocument>
    </system.webServer>
</configuration>

这是我目前的配置。提前致谢。

答案1

如果您可以访问主机或任何运行 IIS7 和 UrlRewrite 的计算机上的 IIS7 管理控制台,那么您可以自动进行转换。

首先,将您的mod_rewrite规则复制到文件中并保存为类似文件mod_rw.htaccess

启动 IIS7 的管理控制台,导航到您的站点。启动 UrlRewrite 功能:

在此处输入图片描述

在右侧操作窗格中选择导入规则

在此处输入图片描述

单击配置文件文本框旁边的省略号按钮,找到并选择mod_rw.htaccess

在此处输入图片描述

接下来点击进口按钮:

在此处输入图片描述

单击导入后,您的mod_rewrite规则将被导入并转换为 IIS7 的 UrlRewrite 2.0 规则格式。

您可以通过单击“XML 视图”选项卡来查看原始 XML 配置:

在此处输入图片描述

此时,如果您点击返回规则右侧操作窗格菜单中的链接,导入器将询问您是否要保存这些规则。如果这不是预期的目标机器,则只需复制 Xml View 选项卡中的内容并粘贴到web.config属于目标站点的内容中。

最后要注意的是(您可能已经知道这一点),您实际上可以更改默认文档顺序,以便index.php优先于index.html

<defaultDocument>
    <files>
        <clear />
        <add value="index.php" /> <!-- <-- moved to top of list -->
        <add value="Default.htm" />
        <add value="Default.asp" />
        <add value="index.htm" />
        <add value="Default.aspx" />
        <add value="index.html" />
    </files>
</defaultDocument>

相关内容