1

我正在处理一个项目Laravel 5.7。一切都在本地主机中工作。但是,在服务器中上传后,所有路由Backend Part都可以正常工作。但是发布路线Frontend Part不起作用。它显示错误 -

403 Forbidden 拒绝访问服务器上的此资​​源

.htaccess在根文件夹中是 -

<IfModule mod_rewrite.c>
    <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>

以前有人遇到过这个问题吗?我错过了什么。在本地主机中一切正常,但在服务器中却不行。

4

3 回答 3

4

我认为您没有生成工匠密钥。请在服务器上运行这些命令。

composer update
php artisan key:generate

你的 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 ^(.*)/$public /$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}]

于 2018-09-16T06:32:01.223 回答
1

要处理前端的东西,/public请将其添加到您的.htaccess

RewriteEngine on
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/$1 [L]
于 2018-09-16T07:22:07.000 回答
0

.htaccess 对我来说看起来不错 确保使用表单调用您的发布路线。

如果您的后端没有问题,那么

您需要授予这些目录的服务器权限

授予 bootstrap/ 和 storage/ 目录的权限,如下所示

sudo chmod -R 777 storage/ bootstrap/

然后它应该工作

于 2018-09-16T10:36:34.347 回答