IIS上的PHP-使用index.php处理所有内容

时间:2018-11-19 19:00:09

标签: php .htaccess iis url-rewriting

我在使用PHP站点的IIS 10上重定向时遇到问题。

使用Apache时: 根目录中的.htaccess文件

RewriteEngine On
RewriteRule ^(.*)$ www/$1 [L]

在www文件夹中,我有这个.htaccess

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz|map)$ index.php [L]

我想使用IIS 10复制该行为,但是我尝试过的选项不正确。

根目录中的Web.config:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
    <rewrite>
        <rules>
            <rule name="wwwRedirect" stopProcessing="true">
                <match url="^(.*)$" ignoreCase="false" />
                <action type="Rewrite" url="www/{R:1}" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>
</configuration>

在www文件夹中,我有以下web.config:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
    <rewrite>
        <rules>
            <remove name="wwwRedirect" />
            <rule name="indexRedirect" stopProcessing="true">
                <match url="\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz|map)$" ignoreCase="false" negate="true" />
                <conditions logicalGrouping="MatchAll">
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
                </conditions>
                <action type="Rewrite" url="index.php" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>
</configuration>

现在我正在获取HTTP 404.0 –在访问Web时找不到。

当我打开网站时,我将重新分配到www文件夹,并在那里将index.php作为默认文件。索引调用url登录/登录,所以我在localhost / sign / in上,但是IIS正在搜索文件\ www \ sign \ in

0 个答案:

没有答案