IIS重写规则 - 如何在浏览器中打开网站时从网站名称中省略“索引”文本

时间:2016-03-20 13:51:59

标签: php iis

我在网站的index.php页面下使用IIS重写规则。

<rule name="INDEX">
<match url="^(.*)index$" />
<action type="Rewrite" url="index.php" appendQueryString="true" />
<conditions logicalGrouping="MatchAll">  
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />  
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
<add input="{REQUEST_URI}" pattern="^/(user/inc|user/img)" ignoreCase="false" negate="true" />
</conditions> 
</rule>

当我访问www.sitename.com时,它会在网站末尾添加索引,例如www.sitename.com/index。

如果我写www.websitename.com或www.websitename.com/index,我想这样做,它应该只显示www.sitename.com。请让我知道我该怎么做。

1 个答案:

答案 0 :(得分:0)

最后,我找到了解决问题的方法。

在编写任何规则之前,在web.config文件中添加以下代码。也可以根据网站中的路径更改index.php页面的路径。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>

        <defaultDocument enabled="true">
            <files>
                <remove value="user/index.php" />
                <add value="user/index.php" />
            </files>
        </defaultDocument>

        <rewrite>  
            <rules>
                <rule name="INDEX">
                    <match url="^(.*)index$" />
                    <action type="Rewrite" url="user/index.php" appendQueryString="true" />
                    <conditions logicalGrouping="MatchAll">  
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />  
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                    <add input="{REQUEST_URI}" pattern="^/(user/inc|user/img)" ignoreCase="false" negate="true" />
                    </conditions> 
                </rule>
            </rules>  
        </rewrite>

    </system.webServer>
</configuration>