vue-router history 模式 iis 应该怎么配置呢

如题 。。。官方文档里只有 nginx,Apache,node 的。。

阅读 9.8k
5 个回答

首先需要安装 url rewrite模块到IIS
点我安装

然后在web.config文件中添加如下配置

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
    <rule name="API Rule" stopProcessing="true">
      <match url="^(api|account|manage)(.*)$" />
      <action type="None" />
    </rule>
    <rule name="Angular Rule" stopProcessing="true">
      <match url="(.*)" />
      <conditions logicalGrouping="MatchAll">
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
      </conditions>
      <action type="Rewrite" url="/" />
    </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

安装url rewrite模块后,在IIS的url rewrite设置里可以导入apache的rewrite rule
rewritebase会报错 删了就好 剩下的会自动识别

按照vue router文档内的apache rule自动生成如下,测试可用还是有问题

<rewrite>
    <rules>
        <rule name="Imported Rule 1" stopProcessing="true">
            <match url="^index\.html$" ignoreCase="false" />
            <action type="None" />
        </rule>
        <rule name="Imported Rule 2" stopProcessing="true">
            <match url="." ignoreCase="false" />
            <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.html" />
        </rule>
    </rules>
</rewrite>
新手上路,请多包涵

IIS 下面还有一个坑,如果你集成sso,回调地址里面包括callback的时候,会报500 URL ReWrite Error,callback换成其他名字就没毛病,此坑略深,踩者自重。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
1 篇内容引用