【发布时间】:2020-06-01 08:47:47
【问题描述】:
我想从 laravel 的 url 中删除 public 单词。我尝试更新.htaccess 并将server.php 重命名为index.php 文件,但之后出现路径错误。如果没有 url 中的公共词,所有 css、js、字体都无法工作。请帮助我,以便我可以设置 css、js、字体的所有路径并从 laravel 中的 url 中删除公共单词。任何帮助都将不胜感激。
【问题讨论】:
标签: laravel
我想从 laravel 的 url 中删除 public 单词。我尝试更新.htaccess 并将server.php 重命名为index.php 文件,但之后出现路径错误。如果没有 url 中的公共词,所有 css、js、字体都无法工作。请帮助我,以便我可以设置 css、js、字体的所有路径并从 laravel 中的 url 中删除公共单词。任何帮助都将不胜感激。
【问题讨论】:
标签: laravel
将您的所有文件从/public 移动到您的根文件夹/(主要是您的laravel 文件夹)。
现在打开index.php文件并编辑2行,如下:
require __DIR__.'/../vendor/autoload.php';
// changed to
require __DIR__.'/vendor/autoload.php';
&
$app = require_once __DIR__.'/../bootstrap/app.php';
// changed to
$app = require_once __DIR__.'/bootstrap/app.php';
现在将此行添加到您的 .htaccess 以防止从 URL 访问 .env:
<Files .env>
order allow,deny
Deny from all
</Files>
通过这种方法,您也可以在任何类型的共享主机中托管您的 laravel 应用程序。
希望这会有所帮助。
【讨论】:
server.php 和 index.php 都是不同的文件
server.php,我在cPanel上安装了很多laravel项目,我从不编辑server.php
在你的 laravel 应用的根目录中添加 .htaccess 文件。
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
它可以正常工作,无需更改 server.php 文件或其他任何内容。
(支持 laravel 版本 > 5.0*)
【讨论】: