.htaccess的Rewrite实现301重定向|怎样处理?问号情况

看到这题目不要觉得土!这个问题不是简单意义上的Rewrite功能代码,有自己的特殊性。

HzlzH搜索了很多帖子,都未曾提及详细,于是发出来

事件起因:网站搬家,觉得开始使用wordpress固定链接功能,即伪静态。

目标:zlz.im/?tag=paypal 301重定向到  zlz.im/tag/paypal/
PS:wordpress自带的rewrite代码只能实现下面几组跳转,分别是:

/?p=*** 定向到  /**name** 文章链接
/?cat=*** 定向到 /cat/**name** 栏目链接
?m=20100101 定向到  /2010/01/01/ 归档链接
?page_id=61 定向到   /**name** 单独页面链接
?page=5 定向到  /page/5 分页链接

唯独 /?tag=*** 没有301定向到 /tag/***
—————————–
下面是我写的成功了的 htaccess.文件,其中最后两段代码就是实现tag重定向的代码。

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteCond %{HTTP_HOST} !^zlz.im$ [NC]
RewriteRule ^(.*)$ http://zlz.im/$1 [L,R=301]
RewriteCond %{QUERY_STRING} ^tag=(.+)
RewriteRule ^$ tag/%1? [L,R=301]

解释一下:这里的RewriteCond %{QUERY_STRING} ^tag=(.+) 是解决?号是别的问题;
^$ tag/%1? [L,R=301]中最后那个问号,不是符号,是? : 三元操作符的意思,只有这样才能告诉地址把后面的内容舍去。

最后,感谢KZ 帮忙一起测试了N久,至此本站所有链接全部都成功301指向新链接,为期一天的搬家结束!

版权所有© HzlzH | 本文采用 BY-NC-SA 进行授权
转载需注明 转自: 《.htaccess的Rewrite实现301重定向|怎样处理?问号情况

相关文章

{ Leave a Reply ? }

  1. itql China Internet Explorer Windows

    看得似懂非懂,呵呵,等我有空的时候多多揣摩下,博友真有才! :)

  2. kangzj China Mozilla Firefox Windows

    这样就行了啊 :cry:

  3. 网络传真 China Internet Explorer Unknow Os

    学习之用.网络传真

  4. itlobo China Mozilla Firefox Windows

    不错,学习一下

  5. Kada China Internet Explorer Windows

    这个东西真管用!学习,收藏先!我那天给自己网站改了一小项就派上了很大的用场!

  6. itql China Internet Explorer Windows

    我的网站搬家出问题了!郁闷

  7. 亚元博客 China Internet Explorer Windows

    tag/%1? [L,R=301]中最后那个问号,不是符号,是? : 三元操作符的意思,只有这样才能告诉地址把后面的内容舍去。
    学习了。。一直为这个问题困绕
    http://blog.yayuan.org/180 我就是不会加后面的?号。所以后面总是加上那请求的参数,,如果不是301,或者是301转到动态页,则没有问题。因为动态页本来有个参数了。后面他就不会再加参数。

  8. 亚元博客 China Internet Explorer Windows

    测试成功。。

    太感谢你了。。哈哈

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)