Удалить index.php из URL-адреса Laravel

Я использую Laravel 5.5.12 в Linux Mint. Я использую стек LAMP. Я хочу удалить index.php из URL. Мой модуль mod_rewrite apache включен.

Мой файл .htaccess находится в папке public и содержит следующий код.

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

    Options +FollowSymLinks

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    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>

Я переименовал server.php в корневой папке Laravel в index.php и скопировал файл .htaccess из каталога /public в корневую папку Laravel. Но это не работает.

Я разместил ниже код в файле .htaccess

<IfModule mod_rewrite.c>

  # Turn Off mod_dir Redirect For Existing Directories
  DirectorySlash Off

  # Rewrite For Public Folder
  RewriteEngine on
  RewriteRule ^(.*)$ public/$1 [L]

</IfModule>

Но это не работает.

Может ли кто-нибудь помочь мне в этом отношении?


person abu abu    schedule 23.09.2017    source источник
comment
Я переименовал server.php в корневой папке Laravel в index.php и скопировал файл .htaccess из каталога /public в корневую папку Laravel. заставляет меня волноваться. Почему вы просто не настроили свой веб-сервер так, чтобы он указывал на общую папку?   -  person sisve    schedule 25.09.2017


Ответы (2)


Сбросьте все, что вы изменили, к значениям по умолчанию.

В конфигурации виртуального хоста apache убедитесь, что у вас правильный DocumentRoot (это будет что-то вроде /var/www/html/laravelproject/public).

Вам не нужно вносить какие-либо изменения в файл .htaccess в общей папке, так как это обрабатывает переписывание URL-адреса для удаления index.php. Однако в некоторых средах мне пришлось добавить

RewriteBase /laravelproject

в .htaccess в общей папке.

person kerrin    schedule 07.10.2017

Я нашел ответ здесь:

https://ma.ttias.be/remove-index-php-from-the-url-in-laravel/

Подводя итог, я добавил следующее в файл .htaccess, непосредственно под существующей записью index.php:

RewriteRule ^index.php/(.+) /$1 [R=301,L]
person Relaxing In Cyprus    schedule 18.08.2020