【发布时间】:2017-02-27 05:24:01
【问题描述】:
【问题讨论】:
【问题讨论】:
将 htaccess 和 index.php 文件从 public 文件夹复制到根目录,然后更改根 index.php 代码如下
require __DIR__.'/bootstrap/autoload.php';
$app = require_once __DIR__.'/bootstrap/app.php';
【讨论】:
安装 Laravel 后,你应该将你的 web 服务器的文档/web 根目录配置为公共目录。该目录中的 index.php 充当所有进入应用程序的 HTTP 请求的前端控制器。
https://laravel.com/docs/5.3/installation#configuration
不要编辑 .htaccess 或 Laravel 相关文件,只编辑 point web server to a public directory instead of Laravel project directory:
DocumentRoot "/path_to_laravel_project/public"
<Directory "/path_to_laravel_project/public">
然后重新启动 Apache。
【讨论】:
在根目录中添加一个.htaccess 文件,其中包含 -
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
【讨论】:
在根目录下创建一个.htaccess文件并将以下内容放入 它
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
【讨论】:
即使上面的解决方案也适合您,但我建议不要这样做。
原因如下。
- 您应该将 Apache 主机根目录指向 $LARAVEL_PATH/public 目录,而不是 $LARAVEL_PATH。
- 你必须为用户配置 apache 不能访问 .env、git 文件、配置文件夹的文件
公共目录的存在是为了使项目更加安全。解决实际问题,不要试图破坏这个简单但很好的安全附加。
【讨论】:
将公用文件夹中的所有文件和文件夹复制到根文件夹并将您的.htaccess文件编辑为
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
并且不要忘记更改 index.php 文件中的路径。 详情参考以下链接
Installing Laravel in a subfolder
https://ellislab.com/forums/archive/viewthread/151342/#734511
【讨论】: