分享一下apache服务器使用htaccess实现301重定向的规则代码。由于nginx服务器对基于动态php语言的wordpress程序执行效率大打折扣,导致服务器cpu常常被php-fpm进程占满卡死,于是将博客的运行环境切换成了apache,瞬间解决了这个老大难问题! 个人博客绑定了很多个域名,但主域名一直是www.YunHe.me,所以需要将其他域名通过301重定向到主域名来避免博客权重的流失。apache与nginx设置301重定向还是有相当大的区别,apache服务器只需将重定向代码保存为名为空后缀为.htaccess的文件,并保存在网站根目录即可。 例子一:
RewriteEngine On RewriteCond %{HTTP_HOST} !^www.yunhe.me$ [NC] RewriteRule ^(.*)$ http://www.yunhe.me/$1 [L,R=301]
以上代码实现了:凡是通过非www.yunhe.me (第2行中的www.yunhe.me)访问过来的域名,均会转向到www.yunhe.me(第3行中的www.yunhe.me)这个域名; 参数说明:
其中第2行中的 !^www.yunhe.me$ :
! 叹号表示域名的开始;
^ 尖号表示非,即不是以 xxx 开头的;
$ 符号表示域名的结尾。
由此可以看出 !^www.yunhe.me$ 表达的意思就是访问到你服务器的域名不是完全与www.yunhe.me相同的域名,就会满足判断的条件,进而触发跳转的操作了。
例子二:
RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} !www.yunhe.pw$ [NC] RewriteRule ^(.*)$ http://www.yunhe.me$1 [L,R=301]
假如需要更换域名,只需将原域名www.yunhe.pw换成新域名www.yunhe.me就可以这样写; 例子三:
RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} !yunhe.me$ [NC] RewriteRule ^(.*)$ http://www.yunhe.me$1 [L,R=301]
假如要yunhe.me全部跳转到 www.yunhe.me可以这样写。
© 原文地址: http://www.amznz.com/apache-htaccess-301/
评论 (0)