做好一个单页面应用后,上传到服务器空间,发现一个致命不好玩的问题,那就是在应用中点击连接没有问题,如果直接在地址栏输入指定路径却会告诉无资源加载。
这就要求我们设置服务器的重定向配置,而关于这个重定向伪静态,参考 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 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦