WEB应用

Apache/Nginx伪静态规则匹配http://出现的问题与解决

这个问题不知道有没有人遇到过,反正度娘和谷姐都没能帮到我!困扰了我挺长时间了,今天偶尔将代码放到Apache服务器下测试时,意外解决了! 问题是这样的,我搭建了一个网站icon图标抓取的API接口,正常情况下对象的传参是通过$_GET获取的,因此常规获取图标的地址应该是: http://domain.com/?url=zhang.ge 或 http://domain.com/?url=https://zhang.ge 为了开启浏览器缓存和后续的CDN缓存,我的设计思路如下: ①、在图标API网站目录下新建一个cache文件夹,以域名.ico的形式保存图标文件,比如zhang.ge.ico ②、当抓取某个网站的ico时,先通过Nginx或Apache判断是否存在缓存文件,如果存在就直接返回给浏览器,这样在没开启CDN的情况下,因为返回的是纯静态文件,浏览器将会自动缓存,也就是返回304状态,加载速度得到提升! 为了开启浏览器缓存,我将地址如下伪静态化: http://domain.com/zhang.ge 或 http://domain.com/https://zhang.ge 这是之前写的Nginx下的伪静态规则: 当时发现不能生效!怎么都匹配不到http://,最后无奈只好用php重写参数中http://了! 今天,我将这个图标API搬家到了万网的免费主机上,是Apache环境,于是按照nginx的规则又写了一遍: 依然不行!奇了怪了,怎么就不能匹配http://呢?于是各种测试,比如将冒号和斜杠缓存url编码都不行! 其实在用nginx失败之后,我用php获取$_GET发现得到的参数中的http://会是http:/,少一个斜杠!而且直接使用http://domain.com/?url=https://zhang.ge获取也是http:/zhang.ge,少一个斜杠! 今天鬼使神差的试了下伪静态中判断http:/,结果成功了!我擦原来要匹配http://,实际上是匹配http:/,少一个斜杠!真实匪夷所思,以前从来没遇到过! 所以上述2个伪静态规则应该如下编写: A. Nginx伪静态:  B. Apache伪静态: 文章写的很啰嗦,实际上关键性解释就是,在Nginx或Apache中要匹配请求url中的【http://】,应该是匹配【http:/】,也就是少写一个斜杠!大胆猜测匹配其他多个斜杠也应该是少一个斜杠。。。 好了,文章洋洋洒洒写了这么多,网站图标API也是成功搭建在万网免费虚拟主机上了。地址是http://seo.zgboke.com/geticon/ ,虽然是专门给中国博客联盟用的,但是如果你有图标调用需求,也可以在合理使用的前提下自由发挥。 另外,要查看是否实现浏览器缓存很简单,随便访问一个ico地址,比如: http://seo.zgboke.com/geticon/zhang.ge 然后按下F12进入开发模式,定位到network(网络选项卡),多刷新一次就能看到304状态了: 304表示当前文件来自浏览器缓存,因为请求的文件和服务段的文件一致,不需要重复调取! 当然,本文写到的伪静态规则只是一部分,如果要实现CDN加速,那还得新增相应的规则,不过这都是后话了,等下次我在张戈博客分享这个网站图标抓取API源码的时候,会一并贴上,敬请期待!
阅读全文
正确的Win主机网站伪静态设置方法 网站建设

正确的Win主机网站伪静态设置方法

在这两天折腾主题的过程中,再次注意到伪静态的设置,之前刚建站时用的是最简单的404错误重定向的方法:复制代码,新建成一个404.php丢到web根目录,然后到空间控制面板将其指定为404错误页面,最后将固定链接修改下,即可实现伪静态。 当时,感觉这个方法最简单,也能达到效果,也就没去深究此法对SEO的影响,现在建站快一个月了,百度却仅仅收录了我的首页和一篇动态文章,我这才开始怀疑这个伪静态设置方法对百度Seo有很大影响(谷歌等搜索引擎无碍)。通过网络搜素资料发现,确实有博友反映了同样的问题,有人已经发博文告之经过404错误重定向的伪静态文章,百度会以为这个页面是不存在的,所以直接略过而不会收录!对比了一下我自己的博客,发现还真的吻合!确实百度就只收录了我的首页以及一个动态页面,而谷歌/360却全部都收录了,而且基本发文一个小时只能就会更新收录! 这样看来,虽然没有确切证据证实这个说法,但是为了长久考虑,我还是决定选用其他伪静态的设置方法。 我的博客是Win+IIS环境,经过对比站长们的经验教程,我选择了Rewite规则来实现Wordpress的伪静态。具体方法如下: 咨询空间商,服务器是否已开启Rewrite规则的支持 新增httpd.ini文件,写入以下代码,并拷贝至网站根目录 然后到wordpress后台修改固定链接为%post_id%.html即可,当然也可以是其他的, 个人建站时就已经选择了这个形式,所以不能随便更改,否则谷歌就要K掉我了! 至于这个方法的原理以及httpd.ini的写法,网络上有大把大把的解说,我也就再不赘述了。写这篇文章的主要目的是告诉跟我一样的菜鸟站长们,使用“404伪静态”的方法会对百度的收录造成一定障碍,还请慎用之!当然,是否属实还得看我今天修改之后的效果如何了,静候佳音吧!
阅读全文