我在使用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