СЕО Поставили задачу редиректить с дублей страниц, таких как
sait.ru/index.php/site/index
sait.ru?r=site/index
sait.ru/index.php/site
и т.д.
набросал решение, подскажите какие подводные камни могут быть:
Код: Выделить всё
public function beforeaction($action){
$isUrlModified = false;
$url = Yii::$app->request->absoluteUrl;
$scriptUrl = Yii::$app->request->scriptUrl;
if (strpos($url, 'index.php') !== false) {
$url = str_replace($scriptUrl, '', $url);
$isUrlModified = true;
}
if (strpos($url, Yii::$app->defaultRoute) != false) {
$url = str_replace('/' . Yii::$app->defaultRoute, '', $url);
$url = str_replace(Yii::$app->defaultRoute, '', $url);
$isUrlModified = true;
}
if (strpos($url, Yii::$app->controller->defaultAction) !== false) {
$url = str_replace('/' . Yii::$app->controller->defaultAction, '', $url);
$url = str_replace(Yii::$app->controller->defaultAction, '', $url);
$isUrlModified = true;
}
if ($isUrlModified) {
$this->redirect($url, 301);
}
return true;
}