简单的网址重写

时间:2011-06-20 19:55:49

标签: .htaccess url-rewriting

我正在尝试重写网址的一部分,因为我更改了CMS并仍希望Google找到我的文章。

我有:

www.mywebsite.com/vision
www.mywebsite.com/vision/40/some-article-name

并想重命名:

www.mywebsite.com/news
www.mywebsite.com/news/40/some-article-name

有关重写规则或我可以查看的任何提示吗?我想更改.htaccess文件中的规则。

2 个答案:

答案 0 :(得分:2)

# Activate Rewrite Engine
RewriteEngine On
# redirect /vision to /news
RewriteRule ^vision$ http://www.mywebsite.com/news [R=301,NC]
# redirect /vision/bla-bla to /news/bla-bla
RewriteRule ^vision/(.*)$ http://www.mywebsite.com/news/$1 [R=301,NC,QSA]

理论上(实际上)可以组合这两个重写规则,但是如果你的URL以“vision”开头(例如:/visions/hurray),那么这样的规则可能会重定向错误的URL。因此,我通过2个更安全的规则来完成它。

答案 1 :(得分:0)

尝试:http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html

或:http://httpd.apache.org/docs/2.2/mod/mod_substitute.html如果您想更改返回浏览器的html内容中的链接。

以下是我如何进行重写的一个示例,我认为你是在追求......

RewriteRule ^(。)/ vision /(.)$ $ 1 / news / $ 2

这可能是广泛的重写范围,在这种情况下,这可能会更好......

RewriteRule http://www.mywebsite.com/vision/(.*)$ http://www.mywebsite.com/news/$1

同时学习正则表达式的基础知识将是进行任何复杂重写IMO所需的技能。

希望有所帮助。