珍爱生命,远离电脑网络。放下执念,享受美好生活。
用.htaccess优化WordPress
经常使用或者开发PHP程序的人应该对Apache的.htaccess(全名 Hypertext Access)配置文件并不陌生。它能通过简单的语句实现诸如权限审核、跳转、防盗链等强大的功能。Wordpress本身的自定义文章链接功能即是使用.htaccess规则来实现的。还有WP Super Cache等热门插件的一些功能,也往往需要修改.htaccess文件来实现。它对没有足够权限来修改Apache主机配置的虚拟主机用户来说是个很好的东西。
以下总结一些非常有用也很常用的.htaccess文件配置方法。希望对各位网站开发者、站长朋友有用。如果你有更好的规则,欢迎一起讨论。
1:图片、多媒体内容防盗链
网上文章一大抄,很多懒人自己并不像打字、搜集资料什么的,只想简单地CV来充实自己的网站。还毫不留情地引用你网站上的图片、多媒体资源。复制文字难以杜绝,那么只好让别人不那么容易直接引用自己网站上的图片吧。在你的网站根目录下建立.htaccess文件,写入以下内容:
Options +FollowSymlinks
#Protect against hotlinking
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?wenzhu.org/ [nc]
RewriteRule .*.(gif|jpg|png)$ http://wenzhu.org/img/backoff.gif[nc]
其中RewriteCond一行,可以多行复制,每行指定一个允许直接引用你网站上资源的网址。比如你想Google可以直接应用:RewriteCond %{HTTP_REFERER} !^http://www.google.com/ [nc].
其中的RewriteCond %{HTTP_REFERER} !^是必不可少的,在后面直接加域名皆可,http://www这些可以省略。
RewriteRule .*.(gif|jpg|png)这一行指定要反盗链的文件后缀,你可以添加其他后缀,用|隔开即可。$后面的地址是替代图片的地址,这也就是经常看到别人引用了网易等地方的图片,会显示“本图片只限在本站内使用”等信息,你可以自己制作一个放入自己的网站下。也可以引用其他的图片地址,比如百度的Logo地址,这样别人盗链后将显示百度的Logo。
2:防止危险访问
有些访问方式和企图是很危险的,因此最好禁止之:#Block bad bots
SetEnvIfNoCase user-Agent ^FrontPage [NC,OR]
SetEnvIfNoCase user-Agent ^Java.* [NC,OR]
SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR]
SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR]
SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR]
SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR]
SetEnvIfNoCase user-Agent ^Zeus [NC]
<limit get=”" post=”" head=”">
Order Allow,Deny
Allow from all
Deny from env=bad_bot
</limit>
3:只让指定IP的用户访问特定目录
有时候你只想让某些特定IP来查看自己网站(或者某个目录),比如你在测试某个新网站,又不想在本地测试。这时候可以通过.htaccess来指定IP访问你的某个目录或者整站。规则如下:
ErrorDocument 403 http://www.domainname.com
Order deny,allow
Deny from all
Allow from 124.34.48.165
Allow from 102.54.68.123
它指定了两个IP能访问你的网站。其他人访问将给出一个403错误并将其定向到指定地址。
4:301跳转优化SEO
有时候我们不得不搬迁网站的内容,而搜索引擎更新的没那么快,引用了这一内容的其他人也没有得到通知。这时候别人通过旧的网址访问就会得到一个404找不到。影响用户体验也影响搜索引擎对你网站的印象。利用301跳转可以使内容平滑迁移。它的原理就是分析旧网址结构,如果符合规则中指定的,则将其定位到新地址:
Redirect 301 /d/file.html http://www.domainname.com/r/file.html
它就是将一个/d/file.html文件重定向到新的http://www.domainname.com/r/file.html上去。
5:自定义错误页面
好的错误页面可以带来更好的用户体验,让用户体会到你的细心。
ErrorDocument 401 /error/401.php
ErrorDocument 403 /error/403.php
ErrorDocument 404 /error/404.php
ErrorDocument 500 /error/500.php
这几行配置前的ErrorDocument 是不变的 401等数字是错误码,/error/401.php则是你自己定义的错误页面地址,是相对于.htaccess所在的目录的,可以自定义。
6:建立IP黑名单。
某个IP的坏蛋老是来捣乱?那么就直接禁掉它吧。
allow from all
deny from 124.232.131.20
deny from 124.232
写全IP地址就封一个IP,写不全就封锁IP段。例如上面的最后一句,生效后124.232.0.0~124.232.255.255的用户均不能访问(好残忍- -)。
7:不让别人直接下载你的网站资源
通常我们点击网站上一个文件链接的时候,浏览器会自动弹出下载对话框。我们可以通过.htaccess文件在自己网站上禁止下载对话框打开。
AddType application/octet-stream .pdf
AddType application/octet-stream .zip
AddType application/octet-stream .rar
一行一个文件后缀名。
8:禁止列出目录文件
有的Apche主机允许列出目录文件。这通常是很危险的事儿,除非你的这些目录是做下载用的。如果不是,我们可以自己禁止它:
Options All -Indexes
保险起见,还可以在每个目录下放一个空的index.htm(或者php、html等常见后缀),来防止目录列表。
9:移除网页后缀名
有些网页是直接将文件名也展现在地址栏中的,比如plugin.php,为了更友好一点,可以去掉这个.php后缀:
RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L]
差不多就这些吧,更多的内容请参考Apache文档。
| This entry was posted by 妖娆盛唐 on 2010/01/27 at 6:59 pm, and is filed under 网站博客. Follow any responses to this post through RSS 2.0. You can leave a response or trackback from your own site. |





about 7 months ago
因为换域名,我只用了一个301重定向
about 7 months ago
我曾经用过301,现在一直在用反盗链
about 7 months ago
学习了!!谢谢
about 7 months ago
不客气,欢迎交流
about 6 months ago
刚刚用,还没用到这些功能