避免使用laravel的公用文件夹,并直接在Web服务器中打开根目录
我正在浏览互联网上所有可能的样本来解决这个问题。这仍然是一个令人头疼的问题。
我只想避免“公共”,让它像根目录一样。www.mylaravelsite.com/public/
www.mylaravelsite.com
现在我不想回避安全问题,所以我学会了会是最好的方法。.htaccess
任何解决方案的朋友?
&提前感谢互动!
我正在浏览互联网上所有可能的样本来解决这个问题。这仍然是一个令人头疼的问题。
我只想避免“公共”,让它像根目录一样。www.mylaravelsite.com/public/
www.mylaravelsite.com
现在我不想回避安全问题,所以我学会了会是最好的方法。.htaccess
任何解决方案的朋友?
&提前感谢互动!
假设您的服务器中有此文件夹结构
.cpanel/
public_html/
public_ftp/
..
而拉拉维尔文件夹结构是
app/
bootstrap/
public/
vendor/
composer.json
artisan
..
您可以在与 和 内联的服务器上创建一个名为 mylaravelsite 的文件夹,并将除公用文件夹之外的整个 laravel 应用程序复制到其中,因为您将所有内容粘贴到 上,因此您现在拥有:public_html
public_ftp
public_html
.cpanel/
public_html/
public_html/packages
public_html/vendor
public_html/index.php
public_html/.htaccess
...
public_ftp/
mylaravelsite/
mylaravelsite/app
mylaravelsite/bootstrap
...
在更改中,以下行:public_html/index.php
require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/start.php';
自
require __DIR__.'/../mylaravelsite/bootstrap/autoload.php';
$app = require_once __DIR__.'/../mylaravelsite/bootstrap/start.php';
也不要忘记改变公共路径,你可以使用它。/mylaravelsite/bootstrap/paths.php
'public' => __DIR__.'/../public',
自
'public' => __DIR__.'/../../public_html',
您的网站应该正在运行。
在根文件夹中创建 .htaccess 并写入这些行
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
对于生产服务器,建议将域直接指向公用文件夹