Laravel 4 禁止请求403

Laravel 4 禁止请求403,laravel-4,apache2,mamp,Laravel 4,Apache2,Mamp,使用laravel开发API 在PUT请求时禁止获取403 可在远程服务器上工作,但不能在本地工作。对本地服务器使用MAMP 这是我的虚拟主机,我没有看到任何东西 服务器管理员webmaster@localhost DocumentRoot“/Users/dg/Documents/Websites/domain.com/public_html/dev/public_html” ServerName域.local ServerAlias www.domain.local 选项索引跟随符号链接 允

使用laravel开发API

在PUT请求时禁止获取403

可在远程服务器上工作,但不能在本地工作。对本地服务器使用MAMP

这是我的虚拟主机,我没有看到任何东西


服务器管理员webmaster@localhost
DocumentRoot“/Users/dg/Documents/Websites/domain.com/public_html/dev/public_html”
ServerName域.local
ServerAlias www.domain.local
选项索引跟随符号链接
允许超越所有
ErrorLog“/Users/dg/Documents/Websites/domain.com/public\u html/dev/error\u log”
CustomLog“/Users/dg/Documents/Websites/domain.com/public_html/dev/access_log”通用

我已经研究了其他类似的问题,但尚未找到解决方案。

在这里找到了解决方案:

在文档根目录处向.htaccess添加了以下内容:


命令允许,拒绝
通融
命令拒绝,允许
全盘否定

在我的vhosts文件中,我放了:

RewriteCond %{REQUEST_METHOD} !^(HEAD|GET|POST|PUT)$ [NC]

这对我来说是允许的。我尝试了所有其他的解决方案,但除了这一点,没有任何效果。

根据@drack的回答,我使用以下代码编辑我的.htaccess:

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

要求所有授权
要求全部拒绝
我的完整.htaccess文件是:

Header add Access-Control-Allow-Origin: "*"
Header add Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"
Header add Access-Control-Allow-Headers: "Content-Type"
<Limit GET POST PUT OPTIONS>
    Require all granted
</Limit>
<LimitExcept GET POST PUT OPTIONS>
    Require all denied
</LimitExcept>
# BEGIN WordPress
RewriteEngine On
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ $1 [R=200,L]
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]

SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
# END WordPress
标题添加访问控制允许来源:“*”
标题添加访问控制允许方法:“获取、发布、选项、删除、放置”
标题添加访问控制允许标题:“内容类型”
要求所有授权
要求全部拒绝
#开始WordPress
重新启动发动机
重写cond%{REQUEST_METHOD}选项
重写规则^(.*)$$1[R=200,L]
重新启动发动机
重写基/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
RewriteCond%{HTTP:Authorization}^(.*)
重写规则^(.*)-[E=HTTP\U授权:%1]
setenif Authorization“(*)”HTTP_Authorization=$1
#结束WordPress

在put请求中,403错误消失。

第一个问题是403从何而来,Web服务器或laravel应用程序是否拒绝该请求?查看apache错误/访问日志和laravel日志(app/storage/logs)。