Zeal Blog - 泽欧里
梦想 就像鸡蛋
要么孵化 要么臭掉
WWW Zeal Blog

url rewrite 的善后工作

zeal 2006-07-18 16:19 于 WebDev , 751 字 |  + 0 - 0   English
Made In Zeal 转载请保留原始链接:http://www.zeali.net/entry/407
标签 ( Tags ):

RewriteEngine On
RewriteRule ^entry/([0-9]+)$ blog/entry.php?id=$1&avoidrepeat=1 [L]
RewriteCond %{QUERY_STRING} ^id=([^&]+)$
RewriteRule ^blog/entry\.php$ /entry/%1? [R=301,N]

  由于一开始的时候主机并不支持 mod_rewrite ,所以日志的 url 都是带 ? 参数的动态 url 。这次决定把该 SEO 的都给 SEO 起来,于是在根目录下加了这个 .htaccess 文件。

  但想要让原来已经被 Search Engine 收录的动态 url 自动转到新的静态化的 url 上来却颇费功夫。本来以为直接加一条 R=301 的 RewriteRule 就行了,可实际上 RewriteEngine 对于 rewrite 之后的最终url与初始url完全一样的逻辑会直接给 Ignore 掉,所以必须加上一个无意义的 &avoidrepeat=1 参数来让 RewriteEngine 认为这是两个不同的请求。另外对于 ? 后面的参数字符串必须在 RewriteCond 里面来匹配而不是直接在 RewriteRule 匹配。

  经过这样的处理之后,无论是通过老式的 entry.php?id=XXX 方式还是经过静态化的 /entry/XXX 方式来访问,最终都会定位到 /entry/XXX 这个静态化的 url 上,对于 Search Engine 来说应该可以更快的根据 R=301 的状态码来更新它的索引库。

This Entry was Last Modified on 2007-05-28 14:17
引用本文(TrackBack): 此功能无限期关闭ing ... 如有引用请在文中标明出处并提供超链接  
没有评论.
对于这篇日志您有什么想法?我想听听您的高见。
如果您不是没有思想的机器Spammer,请告诉我 4 + 8 =
然后任选以下两种方式之一告诉我您的身份:
1. 使用您的 OpenID
2. 使用传统留言格式
(必填) 名字
如何称呼您?
(选填) URL
在此填写您的 Blog / Homepage 的地址,我将非常乐于访问
(选填) Email
Email地址将在经过防SPAM处理后显示在页面。如果您不希望公开自己的Email,请略过此栏
并写下您的见解:
(由于需要进行SPAM过滤,如果评论提交速度慢请耐心等待)
记住我?

  如何进行评论                   当有新回复时给我发送邮件通知
除了 <b> 和 <i> 之外,其他的HTML标签都将从您的评论中去除. URL 或 Email 地址会被自动加上链接.
当您点击发表或者预览之后,系统会自动保存您此次评论的内容,以便当网络原因发表失败时直接按Ctrl-V重新粘贴上次评论内容。
注意:快捷键及自动拷贝功能仅对IE浏览器有效。
 里,居也。——《说文》    里,邑也。——《尔雅》。李注:“居之邑也。”沪ICP备05024379号 Back To Home All Links Loading