How to fix a 403 Forbidden error
The server saw your request and refused it on purpose — here is how to find out which rule is doing the refusing.
A 403 Forbidden error is the server telling you, deliberately, that it will not hand over the page you asked for. That is a distinct thing from a page that doesn't exist — a 403 means the server found something at that address and actively refused it. Somewhere, a permission, a rule, or a firewall has decided the request should be blocked.
Nothing about a 403 implies your files are damaged or your data is at risk. It means access control is working exactly as configured, and the job is finding out which piece of configuration is doing it — because it usually isn't the one you expect.
The causes, in the order worth checking
1. File or folder permissions are wrong
This is the most common cause by a wide margin, especially right after a manual upload or a restore, because some FTP clients and archive tools don't preserve the original permission values.
| Type | Correct value | What goes wrong |
|---|---|---|
| Folders | 755 | Set to 700 or lower, the server can no longer enter the folder to serve anything inside it |
| Files | 644 | Set to 600, the web server process cannot read the file to serve it |
| Never use | 777 | Anyone can write to it — a security risk, and many servers refuse to serve files this open at all |
Check permissions on the specific file that's returning the 403 first, then work upward through its parent folders — a single restrictive folder anywhere in the path will produce a 403 for everything inside it, even if the file itself is set correctly.
2. There is no index file, and directory listing is off
When a folder has no index.php or index.html and directory browsing is disabled at the server — which it is by default, and should stay that way — the server has nothing to serve and nothing it's willing to show instead, so it returns 403 rather than a file listing. This is normal, correct behaviour for any folder that isn't meant to be browsed directly, but it's a common surprise on the homepage folder itself if the index file was never uploaded, was uploaded with the wrong name, or was uploaded with the wrong capitalisation — Linux servers treat Index.html and index.html as two different files.
3. A Deny rule in .htaccess is blocking the request
Open .htaccess in the affected folder and look for lines containing Deny from, Require all denied, or Order deny,allow. These are sometimes left behind deliberately — to lock a staging area, for instance — and sometimes left behind by accident after testing something else. Comment out the block with a # at the start of each line and reload to confirm it was the cause before deciding whether to remove it for good.
4. Hotlink protection is blocking your own site
Hotlink protection stops other websites embedding your images directly, and it works by checking the referring page for each request. Configured too strictly, it can end up blocking requests that come from your own site — most often when a page loads assets from a different subdomain, a CDN, or over a different protocol than the rule expects. If the 403 is limited to images or specific file types rather than the whole site, this is worth checking before anything else on this list.
5. A firewall or security rule is blocking the request
A web application firewall can return a 403 when it flags a request as suspicious — an unusual URL pattern, a blocked country, a rate limit, or a signature match on something that looks like an attack but isn't. This is the one genuinely platform-side cause, and it's worth checking after the four above rather than before them, because the great majority of 403s trace back to something in your own files.
A 403 caused by your own files or rules is consistent — the same request fails the same way for everyone, every time. A firewall-triggered 403 is usually narrower: it affects one specific action, one specific visitor pattern, or clears after a short time once a rate limit resets. If it's the latter, that's worth raising with support directly.
Finding the exact rule from the log
Apache's error log records which directive caused a 403, not just that one happened. Open the error log section of your control panel and look for a line near the time you saw the error — it typically reads something like client denied by server configuration alongside the exact file path, which tells you precisely which folder's permissions or rules to check first rather than working through the whole list blind.
If you've worked through all of that
Note the exact URL that returns the 403, the time it happened, and whether it affects every visitor or only some. With those three details, support can check the server-side logs directly and tell you within one exchange whether it's a file-level issue or something at the platform firewall.
Frequently asked questions
Is 403 the same as 404?
No, and the distinction matters. A 404 means the server looked and found nothing at that address. A 403 means the server found something and is deliberately refusing to hand it over — a permission, a rule or a firewall is actively blocking the request rather than the resource simply not existing.
Could this be my host blocking me?
Occasionally, if an automated security system has misidentified genuine traffic as an attack. It is worth ruling out everything on your own site first, because that accounts for the great majority of 403s — permissions, a stray Deny rule, or a missing index file are all far more common than a false positive at the platform level.
Related reading
The server looked and found nothing there — here is how to work out whether the page moved, was deleted, or was never really at that address.
Why your site shows a list of filesA plain list of filenames where your homepage should be means the server has nothing to show instead — here is the fix.
How to fix a 500 internal server errorThe least informative error on the web. The real message is always in a log — here is how to find it and what it usually says.
How to fix "Error establishing a database connection"A blank page with one line of text, and five possible causes. Here is how to tell which one you have, in the order worth checking.