我的.htaccess
文件中有以下重写配置,它在apache服务器上工作正常,但在IIS服务器中无法正常工作。
Options +FollowSymlinks RewriteEngine on RewriteCond %{HTTP_HOST} ^myservername/$ [NC] RewriteRule ^(.*)$ http://myservername/$1 [R=301,L] RewriteRule !\.(php|png|gif|jpg|css|htm|html|txt|js|swf|xml|ico|mp3|csv|wav|mid) /index.php [L,QSA]
如何在IIS上使用它?
答案 0 :(得分:4)
IIS不支持.htaccess
开箱即用。要在IIS上使用Apache样式的mod_rewrite规则,您需要第三方重写器,例如Iconics ISAPI Rewrite Filter或HeliconTech的ISAPI_Rewrite。您可能需要调整重写规则,因为并非所有mod_rewrite指令都受支持或适用(因为Windows不是Unix)。
如果您正在运行IIS7并且安装了UrlRewriter(免费),您可以使用它,但您需要将重写规则转换为完全不同的格式。
答案 1 :(得分:2)
请创建名为web.config的新文件并粘贴以下内容
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Imported Rule 1" stopProcessing="true">
<match url="^.*$" />
<conditions logicalGrouping="MatchAny">
<add input="{REQUEST_FILENAME}" matchType="IsFile" />
</conditions>
<action type="None" />
</rule>
<rule name="Imported Rule 2" stopProcessing="true">
<match url="^(.*)$" />
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>