2013-07-14 65 views
0

我有这些旧网址:如何301重定向旧的查询字符串?

/site/index?cat=likes&top=today 
/site/index?cat=likes&top=month 
/tag/TagName/index?cat=likes&top=today 

我改变cat=likescat=popular

现在我就在404的。如何将所有来电从cat = likes重定向到cat = popular?

注意:我已经有重定向,美化的URL。

/site/index?cat=popular&top=today

已经被重定向到

/popular-today

+0

如果您认为这是一个Yii问题,您应该添加url规则的相关部分。如果没有,你应该删除Yii标签。 –

回答

0

请检查是否GET变量cat设置与价值 '喜欢',您可以在site/indextag/tagName内检查。之后,您可以使用PHP的header()重定向。类似这样的:

public function actionIndex() 
{   
    if ($_GET['cat'] == 'likes') 
    { 
     header('Location: /site/index?cat=popular', false, 301); 
    } 
    ... 
} 

您也可以使用您美化的URL。

public function actionIndex() 
{   
    if ($_GET['cat'] == 'likes') 
    { 
     header('Location: /popular-today', false, 301); 
    } 
    ... 
} 
+0

我目前在我的.htaccess中有这个项目,并且完全正常工作: 'RedirectMatch 301 /tag/(.*)/likes-(today/week/month/year)/ tag/$ 1/popular- $ 2 RedirectMatch 301 /tag/(.*)/likes-(new|all)/ tag/$ 1/new RedirectMatch 301 /tag/(.*)/likes-30/tag/ $ 1/popular-month RedirectMatch 301/likes-(今天|周|月|年)/热门 - $ 1' 我相信你的建议可行,但我更期待在代码之外做到这一点。 所以我想知道正确的.htaccess条目来重定向有问题的查询字符串。 – Ross

+0

这确实可能是一种更好的溶剂,尽管它与Yii没有多大关系。 – deacs

相关问题