你在这里


ReWrite

Apache Rewrite重定向Drupal升级后&符号的编码%2526成为%26

James Qi 2016年1月7日 - 14:18 发布

  一个系列网站从drupal 6升级到drupal 7后日志中发现大量报错,都是以前可以正常访问的网址现在找不到了,发现以前drupal 6中是这样的:

http://ut.mingluji.com/business_directory/Western_Heating_%2526_Air_Conditioning

  在google搜索中也是上面这样的网址,但升级后以上访问成了404 not found,而用下面这样的网址可以访问:

http://ut.mingluji.com/business_directory/Western_Heating_%26_Air_Conditioning

  对比发现少了一个25,为了兼容起来还需要在.htaccess中写一个Apache ReWrite规则来实现老网址301重定向跳转到新网址,按理说这个跳转非常简单的,但那个%2526的写法却总是不被apache识别,和同事尝试了好几个小时才最终搞定:

RewriteCond %{REQUEST_URI} ^(.*)\%26(.*)$
RewriteRule ^(.*)\%26(.*)$ $1\%26$2 [NE,L,R=301]

  要点有两个:

基于时间的Apache ReWrite规则

James Qi 2015年5月18日 - 17:53 发布

  这些年在使用MediaWiki和Drupal过程中难免要用到Apache的重写规则,最基本的是用于网址简洁化,去掉那些index.php?title=之内的东西,后来也用于跳转手机版判断、屏蔽采集者、纠正引导报错网址等,可以说是一个非常有力的工具,基本上是没法离开。

  但在做一些临时性、测试性修改的时候,偶尔会忘记改还原而导致出现问题,例如因为服务器负载过高而临时屏蔽某个搜索引擎的User-Agent,后来忘记还原了导致搜索引擎爬虫无法抓取、收录量急剧下降等,如果能在临时设置的时候就限定时间就好,以前这样想过,但一直没有找办法。

  今天在网上搜索了一下,找到了办法,.htaccess中代码如下:

自由标签:

订阅 RSS - ReWrite