Laravel как удалить index.php из url

#php #laravel #url #routes

#php #laravel #url #маршруты

Вопрос:

Я создал страницу about в Laravel и указал на нее маршруты, но проблема в том, что когда я перехожу к URL: http://localhost:8080/bsms/public/about это не работает, и там написано

К сожалению, страница, которую вы ищете, не найдена.

Тем не менее, http://localhost:8080/bsms/public/index.php/about работает нормально. Я хочу, чтобы мой URL был свободен от индекса!

Это мои маршрутывведите описание изображения здесь

Комментарии:

1. Что вы используете для сервера сайта, т.е. MAMP, WAMP, XAMPP, встроенный сервер php и т.д.?

2. @RossWilson Я использую xampp

3. У вас должна быть установлена ваша общая папка в качестве веб-корня для проекта. Взгляните на 5balloons.info/install-laravel-5-7-xampp-windows

4. можете ли вы поделиться структурой каталогов

Ответ №1:

перейдите к /public/index.php и добавить код blow после define('LARAVEL_START', microtime(true));

 /*
 * redirecting addresses with /index.php/
 * */
$url = (isset($_SERVER['HTTPS']) amp;amp; $_SERVER['HTTPS'] === 'on' ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
if (strpos($url, '/index.php')) {
    $url = str_replace('/index.php', '', $url);
    header('Location: ' . $url);
    die();
}
  

Ответ №2:

Вы находитесь на localhost?

Попробуйте добавить эту строку в ваш файл .htaccess в вашей общей папке:

 RewriteBase /
  

Итак, это должно быть так:

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

RewriteEngine On

# 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...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
  

Если это не сработает, попробуйте предоставить более подробную информацию о среде вашего проекта.

Кроме того, URL должен указывать на что-то вроде этого: bsms.test или подобное.

Комментарии:

1. Хорошо, откройте консоль и введите: php artisan serve Укажите на указанный URL, обычно: 127.0.0.1:8000

Ответ №3:

Вы должны иметь возможность получить доступ к своей странице «О программе» по этому URLhttp://localhost:8080/bsms/about (принимая во внимание, что ваши файлы просмотра находятся в папке ресурсов, а не в общей папке).

Попробуйте использовать эти команды

 php artisan config:clear
php artisan cache:clear
composer dump-autoload
  

И дайте нам знать, как это происходит.