Jul
25

今天在Google网站管理员工具中无意中看到了有大量的重复信息,一方面是我前段时间写永久链接URL规则的时候,存在失误,最后没有加斜杠..囧 所以上星期发现了就修改了过来,但是原来Google收录的都是不带斜杠的地址。

为了避免URL不统一,当然要做URL Rewrite,用301永久重定向来让Google知道哪个才是我提倡的地址形式。

网上大部分都是Apache上的配置方式,即.htaccess的,当然与ISAPI_Rewrite 2的语法会有所不同,但是手动转换了一下仍然存在问题,可能是我水平不够吧。
后来在寻找Wordpress插件的时候无意中看到一个插件的介绍页中提供了ISAPI_Rewrite和.htaccess的规则:

来自:Trailing Slashes, IIS and F5 / Big-IP

ISAPI_Rewrite 2:
RewriteCond Host: (.*)
RewriteRule ([^.?]+[^.?/]) http\://$1$2/ [I,RP]

ISAPI_Rewirte 3:
RewriteCond %{HTTP:Host} (.*)
RewriteRule ^([^.?]+[^.?/])$ http\://%1$1/ [NC,R=301]

来自:Two WordPress plugins you don’t need and shouldn’t use

Apache .htaccess:
RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]

看起来是2个作者用了2种方法来实现的,反正我们也不求甚解,只要能用就好。

今天还找到个方法来避免重复内容的产生,有兴趣可以看一下使用权威链接(Canonical URL)避免重复内容

Jul
24

ISAPI Rewrite 介绍及相关应用一文简单介绍了ISAPI Rewrite的功能以及URL重写方面的应用,现在再利用ISAPI Rewrite来实现简单而有效的防盗链功能。

不过经过笔者的测试,对于能够伪造Referer来源的程序(比如迅雷等下载工具),这个防盗链就形同虚设了。原理明白了就知道为什么了。

原理:判断Referer是否来自本地主机或在信任列表中的域名,否则就执行重写规则,重定向到一个文件作为防盗链提示。

这里用到了Rewrite Referer来判断URL来源,具体规则如下(分别包含了2.x和3.x版本的规则,请选择使用):

# For version 2.x
RewriteCond Host: ^(.+)$
RewriteCond Referer: ^(?!http://\\1.*).*$
RewriteCond Referer: ^(?!http://(.*\.google\.com|www\.steveluo\.name).*).*$
RewriteRule ^.*\.(?:gif|jpg|png|exe|rar|zip)$ /block.gif [I,O,N]

# For version 3.x
RewriteCond %{HTTP:Host} ^(.+)$
RewriteCond %{HTTP:Referer} ^(?!http://\\1.*).*$
RewriteCond %{HTTP:Referer} ^(?!http://(.*\.google\.com|www\.steveluo\.name).*).*$
RewriteRule ^.*\.(?:gif|jpg|png|exe|rar|zip)$ /block.gif [NC,N,O]

[阅读全文:利用 ISAPI_Rewrite 实现防盗链]

Jul
24

ISAPI_Rewrite确实是个好东西,我们不仅用它可以实现简单的URL重写来实现搜索引擎友好(SEF)的URL形式,还可以利用 ISAPI_Rewrite 实现防盗链,今天,我们再来说一下利用ISAPI Rewrite做301永久转向。

301转向(301 Redirect : Permanently Moved),表示内容永久性转移到新的URL,这样搜索引擎就会知道内容已转移,会去抓取新的URL,因此是友好的。

注意,只有支持自定义URL重写规则的网站空间才能实现自定义的301转向。

域名间的301转向

有时,我们会在域名解析时,创建一个空的主机名,来方便用户输入网址,而省去了www。这样虽然方便了用户,但是从SEO的角度来说,是违反了URL标准化准则的,因此,我们需要对这些不统一的URL进行301重定向。

以下规则能够将steveluo.name以301重定向方式转到www.steveluo.name,这样对于搜索引擎来说是友好的。

注意:本文列出的代码中包含了2.x与3.x版本2种规则,在你使用时务必确认自己使用的版本,否则是无法工作的。

# For ISAPI_Rewrite 2.x
RewriteCond Host: ^steveluo\.name$
RewriteRule (.*) http\://www\.steveluo\.name$1 [I,RP]

# For ISAPI_Rewrite 3.x
RewriteCond %{HTTP:Host} ^steveluo\.name$
RewriteRule (.*) http\://www\.steveluo\.name$1 [NC,R=301]

[阅读全文:利用 ISAPI_Rewrite 做301永久转向]

top
57 queries. 0.316 seconds.