WordPress中.htaccess的应用实例

.htaccess是一个非常强大的分布式配置文件,学会使用.htaccess,对网站用户或wordpress用户来说,可以实现众多的功能。这里我们可以罗列一下通过修改.htaccess文件来增强wordpress的功能的一些有用实例。
1.重定向Wordpress默认Rss地址到Feedburner
Feedburner是Google提供的Feed托管服务,非常优秀。如果我们想手动修改wordpress文件来实现Feedburner替代默认Rss,过程非常繁琐,不过现在没有那么麻烦了,我们可以通过修改.htaccess来轻松实现该功能。大家使用时别忘了把代码中的Feedburner地址替换为自己的。
1 2 3 4 5 6 | <ifmodule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !FeedBurner [NC]
RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
RewriteRule ^feed/?([_0-9a-z-]+)?/?$ http://feeds2.feedburner.com/xxx [R=302,NC,L]
</ifmodule> |
2.在wordpress的url中去除/category/
wordpress默认的category的永久链接形式是这样的http://xxx.com/category/wordpress 这样看来,category似乎在url中显的多余,我们可以修改.htaccess来把他去除
1 | RewriteRule ^category/(.+)$ http://www.xxx.com/$1 [R=301,L] |
修改过后链接就会变成这个样子了,是不是很简洁http://xxx.com/wordpress
3.使用浏览器缓存加速wordpress访问速度
使用缓存是减少网站载入时间的一种好方法,使用下面的代码虽然无法直接为网站加速,但是在多次访问时可以让浏览器节省不少工作
1 2 3 4 5 6 7 | FileETag MTime Size
<ifmodule mod_expires.c>
<filesmatch ?\.(jpg|gif|png|css|js)$?>
ExpiresActive on
ExpiresDefault "access plus 1 year"
</filesmatch>
</ifmodule> |
4.开启gzip压缩
原来的wordpress版本是自带gzip压缩的,从wp 2.5版本后官方去除了该选项,我们可以通过修改.htaceess来实现,不必安装专门的插件了。
1 2 3 4 | AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4.0[678] no-gzip BrowserMatch bMSIE !no-gzip !gzip-only-text/html |
5.把带有日期格式的永久链接形式重定向到/%postname%/格式
首先声明下:这种方法要改变博客的永久链接形式,不要轻易改动,由此可见写博客做好规划是很有必要的。
首先去wordpress的控制面板把永久链接的形式修改为只有/%postname%/的格式,此时你博客的永久链接形式应该为http://www.xxx.com/name-of-the-post 按照下面代码修改.htaccess文件之后,我们就可以重定向带有日期格式的链接了,这样别人通过原有链接仍然可以访问您的网站。
1 | RedirectMatch 301 /([0-9]+)/([0-9]+)/([0-9]+)/(.*)$ http://www.xxx.com/$4 |
6.阻止没有referrer requests的评论减少垃圾评论
垃圾评论让我们为之气结,虽然有akismet等反垃圾评论插件,但是依然有很多漏网之鱼,大部分垃圾评论制造者都是使用软件自动发送的,通过修改.htaccess我们可以阻止没有referrer的垃圾评论,配合相关发垃圾评论插件使用效果更加。
1 2 3 4 5 6 | RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*xxx.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L] |
7.重定向访客到维护页面
当我们更换主题,主机升级等等操作的时候,我们可以暂时让访客访问维护页面,一方面方便了访客也可以借助302重定向告知搜索引擎这不是我的主页面。自行更换代码中的html文件和第三行的ip地址
1 2 3 4 | RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123
RewriteRule $ /maintenance.html [R=302,L] |
8.保护您的博客不被盗链
这种方法适合图片放在自己空间的blogger,自行替换代码中的相关文件夹地址
1 2 3 4 5 6 | RewriteEngine On
#Replace ?xxx\.com/ with your blog url
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?xxx\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
#Replace /images/nohotlink.jpg with your "don't hotlink" image url
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L] |
9.只允许固定的ip地址访问wp-admin
这种方法真的好邪恶,虽然提高了安全性,但是不太适合现在的宽带上网,如果有固定ip的朋友可以试试。
1 2 3 4 5 6 7 8 9 | AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "Example Access Control"
AuthType Basic
<limit get>
order deny,allow
deny from all
allow from xxx.xxx.xxx.xxx
</limit> |
通过修改第8行,我们可以增加允许的ip,多添加一行类似代码allow from xxx.xxx.xxx.xxx 即可
10.屏蔽固定ip访问
如果有多个ip需要禁止,自行修改第三行
1 2 3 4 5 | <limit get post>
order allow,deny
deny from xxx.xxx.xxx.xxx
allow from all
</limit> |
PS:在修改.htaccess文件时请确保已经备份。
