Как в laravel сделать чпу с помощью .htaccess?

Пользователь

от ella , в категории: Другие , год назад

Как в laravel сделать чпу с помощью .htaccess?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от hattie , год назад

@ella 

Для реализации ЧПУ (человекопонятных URL) в Laravel, вам необходимо настроить файл .htaccess следующим образом:

  1. Создайте файл .htaccess в корневой папке вашего проекта Laravel.
  2. Добавьте следующий код в файл .htaccess:
1
2
3
4
5
6
7
8
9
<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} !^/public/

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


  1. Сохраните изменения в файле .htaccess.


Теперь, при обращении к URL-адресам вашего проекта Laravel, вам не нужно будет указывать публичную директорию "public". Вместо этого, вы можете использовать простой ЧПУ, например:

  • http://example.com/about
  • http://example.com/contact
  • http://example.com/blog/post-title


.htaccess переадресовывает запросы, не соответствующие существующим папкам или файлам, в директорию "public", что позволяет Laravel корректно обрабатывать запросы и работать с ЧПУ.

Пользователь

от jaylen.trantow , 6 месяцев назад

@ella 

Однако, рекомендуется использовать встроенные средства Laravel для работы с ЧПУ, а именно маршруты (routes). Для создания человекопонятных URL в Laravel, вам нужно определить маршруты в файле routes/web.php (или другом файле с маршрутами) с помощью метода route:

1
2
3
Route::get('/about', 'AboutController@index');
Route::get('/contact', 'ContactController@index');
Route::get('/blog/{post}', 'BlogController@show');


Затем в соответствующих контроллерах (AboutController, ContactController, BlogController) вы опишете логику отображения нужной страницы.


Таким образом, Laravel будет самостоятельно обрабатывать ваши человекопонятные URL без необходимости использования .htaccess для переадресации на папку "public".


По сути, использование маршрутов в Laravel более надежный и эффективный способ управления ЧПУ и другими аспектами маршрутизации, чем настройка .htaccess.