laravel中的“ 403禁止访问,您没有访问权限”

时间:2019-02-21 12:07:23

标签: laravel .htaccess

所有ajax请求均失败,并显示403 Forbidden错误。是由于htaccess。将其托管在服务器上后出现此问题。我已如下更改.htaccess。

<IfModule mod_rewrite.c>
AddHandler application/x-httpd-php72 .php
    RewriteEngine On
    # Removes index.php from ExpressionEngine URLs  
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?url=$1 [PT,L]

</IfModule>

我在public_html和根目录的其他文件夹中有公共文件。

我在路径API \ MyContorller和路由中拥有文件  Route::apiResources(['post' => 'API\MyContorller ]);

我在XHR请求(即Ajax呼叫放置请求)中遇到此问题

我正在调用update方法来更新vue组件中的表

 updateQuiz(){
            this.form.put('/api/chapter/'+this.$route.params.id + '/quiz/' + this.form.id);

}

4 个答案:

答案 0 :(得分:0)

如果您正在使用将Web服务器映射到根目录的主机,则htaccess文件应包含重定向到public / index.php文件的请求 例如

RewriteEngine on
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/$1 [L]

答案 1 :(得分:0)

记住请求中的CSRF令牌。

如果您使用的是PUT / DELETE方法,则可以将其转换为

{
method: 'POST',
data: { _method: 'PUT', _token: token },
}

答案 2 :(得分:0)

如果有人遇到这个麻烦。这是将以下代码添加到公用文件夹中的htaccess文件中的解决方案

<Limit GET POST PUT OPTIONS>
    Require all granted
</Limit>
<LimitExcept GET POST PUT OPTIONS>
    Require all denied
</LimitExcept>

答案 3 :(得分:0)

我遇到了类似的问题,结果证明之前没有执行 git init 是导致此问题的真正原因。如果您已经将项目挂钩到 GitHub 存储库,则无关紧要。确保在开始时执行 git init,然后在提交和推送之前执行 git add .