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>