Developing an API using laravel.
Getting 403 Forbidden on PUT request.
Works on a remote server but not locally. Using MAMP for the local server.
Here is my virtual host, I don't see anything off.
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot "/Users/dg/Documents/Websites/domain.com/public_html/dev/public_html"
ServerName domain.local
ServerAlias www.domain.local
<Directory />
Options Indexes FollowSymLinks
AllowOverride All
</Directory>
ErrorLog "/Users/dg/Documents/Websites/domain.com/public_html/dev/error_log"
CustomLog "/Users/dg/Documents/Websites/domain.com/public_html/dev/access_log" common
</VirtualHost>
I've looked at other similar questions on SO but no solution yet.
Found the solution here: https://serverfault.com/questions/275512/put-request-results-in-403-forbidden-need-apache-to-allow-put-requests
Added the following to .htaccess at the document root:
<Limit GET POST PUT DELETE HEAD OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST PUT DELETE HEAD OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
According to @drack's answer I edit my .htaccess using this code:
<Limit GET POST PUT OPTIONS>
Require all granted
</Limit>
<LimitExcept GET POST PUT OPTIONS>
Require all denied
</LimitExcept>
My complete .htaccess file is:
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
And 403 error goes away in put request.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With