SEO-оптимизация

Как удалить слеш в конце URL. Обработка URL-адресов со слешем на конце

Как удалить слеш в конце URL. Обработка URL-адресов со слешем на конце

Правильным будет склеивать URL со слешем на конце и без слеша, так как это всё равно одна и та же страница. Определитесь как вам нравится больше и затем склейте URL с помощью 301 редиректа. Решите либо всё без слеша будет, либо со слешем на конце.

Вы можете сделать такую склейку разными способами.

Средствами Yii

Для редиректов на URL без слеша, добавив в config/main.php обработчик

return [
    ...
    'on beforeRequest' => function () {
        $pathInfo = Yii::$app->request->pathInfo;
        $query = Yii::$app->request->queryString;
        if (!empty($pathInfo) && substr($pathInfo, -1) === '/') {
            $url = '/' . substr($pathInfo, 0, -1);
            if ($query) {
                $url .= '?' . $query;
            }
            Yii::$app->response->redirect($url, 301);
            Yii::$app->end();
        }
    },
    ...
];

Для редиректов на URL со слешем

return [
    ...
    'on beforeRequest' => function () {
        $pathInfo = Yii::$app->request->pathInfo;
        $query = Yii::$app->request->queryString;
        if (!empty($pathInfo) && substr($pathInfo, -1) !== '/') {
            $url = '/' . $pathInfo . '/';
            if ($query) {
                $url .= '?' . $query;
            }
            Yii::$app->response->redirect($url, 301);
            Yii::$app->end();
        }
    },
    ...
];

Средствами nginx

Редирект на URLs без слеша

location / {
    rewrite ^(.*)/$ $1 permanent;
    try_files $uri $uri/ /index.php?$args;
}

Редирект на URLs со слешем

location / {
    rewrite ^(.*[^/])$ $1/ permanent;
    try_files $uri $uri/ /index.php?$args;
}


Средствами Apache

Редирект на URLs без слеша

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

Редирект на URLs со слешем

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/])$ /$1/ [L,R=301]


19 июня 2016, SEO-оптимизация / Метки: SEO

По мотивам – https://github.com/samdark/yii2-cookbook/blob/master/book/handling-trailing-slash-in-urls.md