@AleDv

Как избавиться от public/index.php в URL Laravel?

Есть URL вида site.ru/category, после загрузки проекта на хостинг, заметил, что яндекс начал индексировать URL такиого вида: site.ru/public/index.php/category.

В корне лежит .htaccess
<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>


В public htaccess такой:
<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

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

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

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


Пока только пришло в голову, что нужно сделать редирект c адресов, содержащих public/index.php на урлы без него, но как это сделать - не знаю. Подскажите, как решить такую проблему?
  • Вопрос задан
  • 1724 просмотра
Пригласить эксперта
Ответы на вопрос 3
@WapGeaR
Программист
Эм, я могу ошибаться, но нужно в конфиге вэб сервера корнем указывать не laravel-directory, а laravel-directory/public
Ответ написан
Комментировать
@void01
Вероятно как-то так
RewriteRule ^public/index.php/(.*)$ $1 [R=301]

а вообще запретите public/index.php/* в robots.txt
Ответ написан
Alex_Wells
@Alex_Wells
PHP/Kotlin
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы