编程语言
首页 > 编程语言> > 如何删除URL生成的Laravel中的“public / index.php”?

如何删除URL生成的Laravel中的“public / index.php”?

作者:互联网

我需要从Laravel中生成的URL中删除index.php或public / index.php;通常路径是localhost / public / index.php / someWordForRoute,它应该像localhost / someWordForRoute.

的.htaccess

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

RewriteEngine On

# Redirect Trailing Slashes.
RewriteRule ^(.*)/$/$1 [L,R=301]

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

应用程序/配置/ app.php

'url' => 'http://localhost',

我怎么能改变呢?

解决方法:

选项1:使用.htaccess

如果它不存在,请在Laravel根目录中创建.htaccess文件.
如果Laravel根目录不存在,请创建一个.htaccess文件. (通常它位于你的public_html文件夹下)

编辑.htaccess文件,使其包含以下代码:

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

现在您应该可以访问没有“/public/index.php/”部分的网站.

选项2:将’/ public’目录中的内容移动到根目录

在根目录中创建一个新文件夹,并移动除公用文件夹之外的所有文件和文件夹.您可以随意调用它.我将使用“laravel_code”.

接下来,将所有内容移出公共目录并移至根文件夹.它应该导致与此类似的东西:

之后,我们所要做的就是编辑laravel_code / bootstrap / paths.php文件和index.php文件中的位置.

在laravel_code / bootstrap / paths.php中找到以下代码行:

'app' => __DIR__.'/../app',
'public' => __DIR__.'/../public',

并将它们改为:

'app' => __DIR__.'/../app',
'public' => __DIR__.'/../../',

在index.php中,找到以下行:

require __DIR__.'/../bootstrap/autoload.php';     
$app = require_once __DIR__.'/../bootstrap/start.php';

并将它们改为:

require __DIR__.'/laravel_code/bootstrap/autoload.php';     
$app = require_once __DIR__.'/laravel_code/bootstrap/start.php';

资料来源:How to remove /public/ from URL in Laravel

标签:htaccess,laravel-routing,php,laravel,laravel-4
来源: https://codeday.me/bug/20190915/1805589.html