为了账号安全,请及时绑定邮箱和手机立即绑定

windows-IIS服务中单页面应用重定向(伪静态)的配置

做好一个单页面应用后,上传到服务器空间,发现一个致命不好玩的问题,那就是在应用中点击连接没有问题,如果直接在地址栏输入指定路径却会告诉无资源加载。

这就要求我们设置服务器的重定向配置,而关于这个重定向伪静态,参考 http://www.imooc.com/learn/798

这里主要说一下如何在IIS中配置重定向

IIS中是不支持.htaccess配置文件,所以apache那一套语法在IIS中就没法使用了,当然原理是一回事,只是语法是有差异的。

一般IIS服务中,都会在网站目录下生成一个web.config文件,这类似.htaccess,就需要在这里实现重定向的设置。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                 <rule name="Rule-1" stopProcessing="true">
                    <!-- ^beta/index\.html$ 这里是需要匹配的入口文件 -->
                    <match url="^beta/index\.html$" ignoreCase="false" />
                    <action type="None" />
                </rule>
                <rule name="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>
                    <!--下面的url指向主入口文件-->
                    <action type="Rewrite" url="/beta/index.html" />
                </rule>
           <rules>
        </rewrite>
    </system.webServer>
</configuration>

将该文件依然保存在网站主目录下(无需重启服务啥的,直接就是上传更新这个web.config文件就搞定)

如果本地测试时有安装IIS服务,那么可以在IIS管理器中找到URL重写设置,然后将你熟悉的已经配置好的.htaccess文件导入,这会自动生成IIS的重写规则。(注意这里需要单独安装URL重写模块)

需要注意的是,如果在web.config中手写重写规则,一定要注意语法,一旦语法或匹配模式出错,那么会导致整个网页读取都会出现问题(这会让你误以为是自己写的JS或HTML代码出现问题)。

对于URL-rewrite可参考官方的学习文档(!只有英文!)https://www.iis.net/learn/extensions/url-rewrite-module

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消