I have a script giving me error 403 Forbidden error
, it's just a copy of another script but the difference in this is that both use another mysql class to access database.
My whole project is complete and this is last file so I don't want to do the whole work again for a single file.
Server logs shows that client denied by server configuration:
What should I look for?
I have tried the following:
- Permissions are 644
- New file with just simple echo gives 403 too
- Changed name of folder
However, index.php
works perfectly.
Check the permissions and also ownership of the file. Generally, 403 means that the web server doesn't have the rights to read the file and therefore can't continue the request. The permissions may be set correctly, however the file might be owned by another account on the server - an account that isn't part of the same group as the account which is running the server.
For instance, I believe* Apache is ran by default under the
httpd
user account, which is part of thehttpd
group. However, the FTP user you're logging in as (for instanceftpuser
) might not be part of thehttpd
group. So, in copying the file you've created it under a different user account and Apache won't get execute access with644
.* it's been a while since I've used apache, but it's similar under nginx.
I had the same problem. The
.htaccess
file in my root folder has this code:But there was a folder
/example
where I needed to call php files, so I created a.htaccess
file in that specific folder with this content:Note: I am running Apache 2.4
This isssue occurs if you have had denied for all in .htaccess file. Changing that resolves the issue.