如何替换请求URL中的文字

ID:45 / 打印 收藏
以下解决方案,仅适用于Apache服务器。

在.htaccess文件中添加以下语句:

RewriteCond  %{REQUEST_URL}  "string1"

RewriteRule  "(.*)"string1(.*)"  "$1string2$2"  [N,PT]

例如当客户端发出请求URL:example.com/string1/abcstring1.html,则转换为目标URL:example.com/string2/abcstring2.html。其中[N]标记告诉Apache重新执行重写规则,直到RewriteCond失效为止。只要请求URL中包含需要替换的字符串,它就会一直重复地执行。当所有的string1都被替换完毕,则RewriteCond失效。本例子中,RewriteCond执行了2次。[PT]告诉mod_rewrite把重写的URL传送到Apache来进行接下来的处理工作。

我们都知道,关键字是否在URL中对于网站SEO至关重要。对于建站初期不注重SEO的站点,特别是大型站点,本功能真是雪中送炭。

注意:使用本功能时,有时会把非目标字符也做了修改,假如例子中的“abcstring1”不是目标字符,但这个功能也会替换了它。

当然,你或许可以通过这个功能获得另外的启发:改版时,如何保留原链接,创建新的URL?