Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Re: Laravel » Дубли страниц для СЕО » 24.07.2019 08:35:33

RewriteCond %{THE_REQUEST} /index\.php [NC]
RewriteRule ^(.*?)index\.php[^/] /$1? [L,R=302,NC,NE]

RewriteCond %{THE_REQUEST} /index\.php [NC]
RewriteRule ^(.*?)index\.php(?:/(.*))?$ /$1$2? [L,R=302,NC,NE]

Данное решение мне помогло.

С canonical сложнее,

<link rel="canonical" href="{{ url()->current() }}" />

Формирует URL с /index.php/other/url/map
В таком варианте нужно будет использовать str_replace

#2 Laravel » Дубли страниц для СЕО » 23.07.2019 19:32:10

Sychoboy
Ответов: 5

Обратите внимание на URL

https://laravel.ru/index.php/posts/1125
https://laravel.ru/posts/1125

Открывается одна и та же страницы. Для поисковой системы это дубли. Как решить этот баг. Такая проблема на всех сайтах Laravel

Прикладываю свой htaccess.

Прошу не путать проблемы с DocumentRoot, когда не правильно настроен вследствие чего появляется "public/index.php" - это не тот случай.

<IfModule mod_rewrite.c>

    RewriteEngine On
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]

    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>



    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]


    # Handle Front Controller...
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]


</IfModule>

Подвал раздела