web.config重写index.php为子目录

时间:2013-07-04 12:46:43

标签: iis web-config rewrite

在服务器上有两个webapps,一个wordpress网站和一个子目录中的“独立”网站。

两个应用程序都需要重写index.php,对于wordpress,这是自动完成的,但现在我还需要重写子目录中的其他应用程序。

进一步澄清:

http://www.example.com/contact应重定向到http://www.example.com/index.php/contact http://www.example.com/subfolder/contact应重定向到http://www.example.com/subfolder/index.php/contact

这似乎是一件相当简单的事情,但我似乎无法弄明白......

这是我现在拥有的web.config,如何解决这个问题?

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <defaultDocument>
            <files>
                <clear/>
                <add value="index.php"/>
                <add value="Default.htm"/>
                <add value="Default.asp"/>
                <add value="index.htm"/>
                <add value="index.html"/>
                <add value="iisstart.htm"/>
                <add value="default.aspx"/>
            </files>
        </defaultDocument>
        <rewrite>
            <rules>
                <rule name="wordpress" patternSyntax="Wildcard">
                    <match url="*"/>
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
                    </conditions>
                    <action type="Rewrite" url="index.php"/>
                </rule>
                <rule name="standalone" stopProcessing="true">
                    <match url="^" ignoreCase="false" />
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="index.php/{R:1}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

0 个答案:

没有答案