Laravel如何从网址中删除index.php

时间:2019-03-25 20:52:30

标签: php laravel url routes

我已经在Laravel中创建了一个About页面,并将其指向路线,但是问题是当我转到以下网址时:http://localhost:8080/bsms/public/about 它不起作用,并且显示

  

对不起,找不到您要查找的页面。

但是,http://localhost:8080/bsms/public/index.php/about工作正常。我想让我的URL脱离索引!

这是我的路线enter image description here

3 个答案:

答案 0 :(得分:0)

您在本地主机吗?

尝试将此行添加到公用文件夹中的.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 :(得分:0)

您应该能够通过此URL http://localhost:8080/bsms/about访问“关于”页面(考虑到您的视图文件位于资源文件夹中,而不位于公共文件夹中)。

尝试使用这些命令

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

让我们知道进展如何。

答案 2 :(得分:0)

转到/public/index.php 并在define('LARAVEL_START', microtime(true));

之后添加打击代码
/*
 * redirecting addresses with /index.php/
 * */
$url = (isset($_SERVER['HTTPS']) && $_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();
}