SBLOG.修复记录

接到七牛的通知,网站静态资源临时域名被回收,几天后网站就残疾了,今天抽空出来维护一下。
虽然之前说接了项目,停更博客一段时间,但是我还是忍不住动手记录一下..

0x01 七牛逼

机智的我在写主题的时候就引入了函数,方便我更换CDN:
func
首先是把整个网站引用七牛的链接全部替换掉,接着问题就来了。
error
这个woff字体文件无法正常load,我查了一下FTP,这个文件是正常存在的。。
当然机智的我选择了Google...

是因为iis默认不能加载后缀是.woff字体文件,打开iis找到mime,添加这种文件类型就可以了,后缀名.woff,文件类型添加 application/x-font-woff

这不就意味着我要编辑web.config,IIS太难用了,试了半天终于核对了一个办法
在根目录下新建web.config,保存以下内容:

<configuration> 
<system.webServer> 
<staticContent> 
<mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
<mimeMap fileExtension=".woff2" mimeType="application/x-font-woff" /> 
</staticContent> 
</system.webServer> 
</configuration>

顺便附上一份IIS webconfig详解:
https://www.cnblogs.com/dupeng0811/archive/2009/04/10/1433064.html

保存后万事大吉,注意web.config文件不能放空!否则会导致网页无法正常加载
等我找到一个更好看的logo,我就把网页底部的七牛替换掉..
OKJB

0x02 icon挂了

第二个棘手的问题是icon出现故障
由于我的本地备份文件和七牛上略有不同,当时也懒得按照规范重写。。后悔55555
222
真是莫名其妙。。挨个排查css,结果发现是about页面的like.css冲突
like
检查一下like.css的代码和index.php
css
icon这个东西冲突了,但是icon又用不到,因为fontawesome的存在。。所以把icon改成iconb
emm
你以为事情就这样结束了吗,我打开about页面点击小红心的时候发现居然..
嗷嗷
这是何等的绝望啊...
把js文件下载出来,用VScode变更编码格式,上传..还是这样。
起初认为是缓存问题,当我清空20遍缓存后还是这毛病,作为社会主义接班人的我是不相信鬼神的,坚定的认为是浏览器出现了毛病,于是机智的我把like.js重命名为like-nb.js,他妈的居然还是这样个样子。
迫不得已,更改成英文提示...
too
felt

0x03 错误页面

首先是先update一下error界面,然后web.config输入以下代码

<configuration>
    ...
    <system.web>
        ...
        <customErrors mode="On" redirectMode="ResponseRewrite" defaultRedirect="~/Error/500.htm">
            <error statusCode="404" redirect="~/Error/404.htm" />
            <error statusCode="500" redirect="~/Error/500.htm" />
        </customErrors>
        ...
    </system.web>
    ...
    <system.webServer>
        ...
        <httpErrors errorMode="Custom">
            <remove statusCode="404" />
            <error statusCode="404" path="/Error/404.htm" responseMode="ExecuteURL" prefixLanguageFilePath="" />
            <remove statusCode="500" />
            <error statusCode="500" path="/Error/500.htm" responseMode="ExecuteURL" prefixLanguageFilePath="" />
        </httpErrors>
        ...
     </system.webServer>
     ...
</configuration>

0x04 开启伪静态

下一步是伪静态(pseudo-static),这个名词好像老外不常听见,而应该是rewrite.
来看IIS社区上和我遇到相同的问题
我把这个Thread整理一下,就是在web.config中加入如下代码:

<configuration>
...
<system.webServer>
...
<rewrite>
  <rules>
    <rule name="Remove index" 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="index.php" />
    </rule>
  </rules>
</rewrite>
...
</system.webServer>
...
</configuration>

然后再到typecho后台开启rewrite功能,至此就去掉了恶心的index.php/了。


已有 5 条评论
  1. XY XY

    nice

  2. 厉害,如果是我直接覆盖

  3. 机智的你

  4. jb的儿子 jb的儿子

    牛逼

添加新评论