如何使用.htaccess 301重定向和更改URL?

时间:2013-08-07 13:24:44

标签: php .htaccess redirect mod-rewrite

我刚刚发现我需要删除一些重复的页面,但是一些不存在的页面会被编入索引并产生少量流量。我想将这些网址重定向到原始网址。

http://www.example.com/buy-something.php

http://www.example.com/something.php

我基本上需要删除网址中的“buy-”并确保将页面重定向到正确的页面。以下是我到目前为止的情况:

#301 Redirect buy- to none
RewriteRule ^([a-zA-Z\.]+).php$  /buy-$1.php  [L,R=301]

但是这对应该重定向的页面没有任何作用,并且会向其他页面添加一个买入 - 购买 - 购买 - 购买 - 购买 - 循环,并导致它们超时。我尝试了其他一些变化,但没有取得胜利。

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您的重写规则不正确。它与你的意图相反。试试这个:

#301 Redirect buy- to none
RewriteRule ^buy-(.*).php$  /$1.php  [L,R=301]

答案 1 :(得分:1)

你混淆了语法,现在你将任何 .php重定向到/buy-.php, 因为你想要它的另一种方式尝试:

RedirectRule ^buy-([a-zA-Z\.]+).php$  /$1.php  [L,R=301]

这应该采取任何购买 - * .php域名,并使用Code 301将它们重定向到* .php。

来源: http://httpd.apache.org/docs/current/mod/mod_rewrite.html