l0chmstr
你们一定都认识Richard Feynman
加布里鳄的池塘
SBLOG.修复记录

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

0x01 七牛逼

https://pur.dog/wp-content/uploads/2019/07/005zWjpngy1fvsz7vx356j313g0fa0uf.jpg
https://pur.dog/wp-content/uploads/2019/07/005zWjpngy1fvsxf9nqpej312i06y11k.jpg

机智的我在写主题的时候就引入了函数,方便我更换CDN:

首先是把整个网站引用七牛的链接全部替换掉,接着问题就来了。

这个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

https://pur.dog/wp-content/uploads/2019/07/005zWjpngy1fvsxf9gxisj30km04w3ze.jpg

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

0x02 icon挂了

https://pur.dog/wp-content/uploads/2019/07/005zWjpngy1fvsybbbfl3j310w0z67wi.jpg
https://pur.dog/wp-content/uploads/2019/07/005zWjpngy1fvsydjbtdvj30pe0bs453.jpg
https://pur.dog/wp-content/uploads/2019/07/005zWjpngy1fvsyq7xdg4j30cg08m75b.jpg
https://pur.dog/wp-content/uploads/2019/07/005zWjpngy1fvsyjidtq5j30qm0kywig.jpg
https://pur.dog/wp-content/uploads/2019/07/005zWjpngy1fvsyy8x687j310e0b6dgz.jpg
https://pur.dog/wp-content/uploads/2019/07/005zWjpngy1fvsz1wwmh3j310e0b6dgz.jpg
https://pur.dog/wp-content/uploads/2019/07/005zWjpngy1fvsz2dntbpj30d606it8z.jpg

第二个棘手的问题是icon出现故障
由于我的本地备份文件和七牛上略有不同,当时也懒得按照规范重写。。后悔55555

真是莫名其妙。。挨个排查css,结果发现是about页面的like.css冲突

检查一下like.css的代码和index.php

icon这个东西冲突了,但是icon又用不到,因为fontawesome的存在。。所以把icon改成iconb

你以为事情就这样结束了吗,我打开about页面点击小红心的时候发现居然..

这是何等的绝望啊…
把js文件下载出来,用VScode变更编码格式,上传..还是这样。
起初认为是缓存问题,当我清空20遍缓存后还是这毛病,作为社会主义接班人的我是不相信鬼神的,坚定的认为是浏览器出现了毛病,于是机智的我把like.js重命名为like-nb.js,他妈的居然还是这样个样子。
迫不得已,更改成英文提示…

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/了。

发表评论

textsms
account_circle
email

加布里鳄的池塘 | Pool of l0chmstr

SBLOG.修复记录
接到七牛的通知,网站静态资源临时域名被回收,几天后网站就残疾了,今天抽空出来维护一下。虽然之前说接了项目,停更博客一段时间,但是我还是忍不住动手记录一下.. 0x01 七牛逼 …
扫描二维码继续阅读
2018-10-01