IIS+ThinkPHP下UniApp H5使用History打包后刷新无法正常访问的解决方法。
首先需要在IIS中安装urlRewrite转发
同时在站点根目录下增加web.config(如果是IIS站点的话,这个文件会自动生成,直接编辑即可)
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="102400000" />
</requestFiltering>
</security>
<rewrite>
<rules>
<clear />
<rule name="PAGES" stopProcessing="true">
<match url="^pages/(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<action type="Rewrite" url="index.html" />
</rule>
<rule name="ThinkPHP" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<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}" appendQueryString="true" />
</rule>
</rules>
</rewrite>
<directoryBrowse enabled="true" />
<httpErrors errorMode="Detailed" />
<handlers>
<remove name="PHP" />
<remove name="HTML" />
<add name="JS" path="*.js" verb="GET,POST" modules="IsapiModule" scriptProcessor="C:\Windows\System32\inetsrv\asp.dll" resourceType="File" preCondition="bitness64" />
<add name="HTML" path="*.html" verb="GET,POST,PUT,DELETE" modules="IsapiModule" scriptProcessor="C:\Windows\System32\inetsrv\asp.dll" resourceType="Either" requireAccess="Script" preCondition="bitness64" />
<add name="PHP" path="*.php" verb="GET,POST,PUT,DELETE" modules="FastCgiModule" scriptProcessor="D:\WAMP\PHP7.4.13\php-cgi.exe" resourceType="Either" requireAccess="Script" />
</handlers>
</system.webServer>
<system.web>
<httpRuntime executionTimeout="1800" />
</system.web>
</configuration>