在网站搬家的过程中,一个很重要的地方就是要考虑把原站点的页面地址定向到新页面地址,如果您不愿意在drupal站点内为一些特定的节点自定义重写路径,或者是没使用clean urls的时候,301重定向就是最好的处理页面重定向方法,它是会告诉搜索引擎更新页面路径信息。从而避免造成搜索引擎排名受影响,也不用给用户看一个纠结的404页面了。
网站做301重定向,对于站长们来说并不陌生,而301被解释为永久重定向,在支持mod_rewrite的apache服务器上用.htaccess文件写入是相当方便的。
使用专门的文档编辑器打开您的.htaccess文件,一般情况下这个.htaccess文件是放在您php虚拟主机网站根目录下的,并且将这个文件的编码格式确定为“UTF-8”。
首先在.htaccess文件中找到下列命令行:
# Various rewrite rules.<IfModule mod_rewrite.c><IfModule mod_rewrite.c> RewriteEngine on # Modify the RewriteBase if you are using Drupal in a subdirectory and # the rewrite rules are not working properly. #RewriteBase /drupal #如果你的网站工作在子目录下用RewriteBase /子目录名
在确认上述编码后,在drupal自己分享的重写原站点网页地址后加入下图中格式的表达式。
#自定义重写RewriteRule ^old/URL/path$ http://example.com/new/path [R=301,L]#结束自定义重写
注释:上图中的原路径指的是对于网站根目录的相对路径,而后面定义的新路径是绝对路径,是包括了域名的!而[R=301,L]中的301就是告诉浏览器和蜘蛛,这个是永久重定向,而L是确认在定向完成前不做任何的重写操作。
上面的话都是一些纯理论的东西,看完了很多站长该有点蒙,那让我们来看些例子吧。
例子1:如果我们改了分类术语的名称,那我们就要做的是把旧分类术语的定向到新的分类术语路径。
原分类属于路径为:mysite.com/dogs,修改后分类属于为mysite.com/cats。
那么重写规则是:
RewriteBase /RewriteRule ^dogs/(.*)$ http://mysite.com/cats/$1 [R=301,L]
请注意:旧路径只是根目录之外的路径。该新的路径是绝对路径,包括域名。[R = 301,L]代码是301重定向指令。(301告诉浏览器和蜘蛛它是永久重定向,并且L确保在到达Drupal之前不会在URL上处理其他重写;因此将此代码放在Drupal自己的URL重写的前面,但又放在命令RewriteEngine on后面。)
如果要添加更多路径,请将重写命令作为自己的行插入,如上所述。
当然,这只是一些很基础的东西,也算是一个引导吧。希望能给站长们带来一些帮助,当然官网原文里有很多很经典的回复,因为问题的针对性很强,这里知识兔(www.zhishitu.com)也就不一一翻译了。
drupal原文地址:http://drupal.org/node/38960
下载仅供下载体验和测试学习,不得商用和正当使用。
下载体验