Every time a browser asks your website for a page, the server answers with a three-digit HTTP status code. Most of the time it is 200 and nobody notices. When it is 403, 404, 500 or 508, the code tells you roughly where to look. This guide explains the codes you are likely to meet on cPanel and DirectAdmin hosting, what usually causes each one on Domain India shared hosting, and which guide to open next.
Codes starting with 2 mean success, 3 means redirect, 4 means the request can't be served as asked (403 forbidden, 404 not found), and 5 means the server side failed (500, 503, 504) or your account hit a limit (508). On our shared hosting, 5xx errors are almost always caused by the site itself: a bad .htaccess line, a PHP error or a resource limit. Read the error log first, and on cPanel test with ?t=1 on the URL so you don't see a cached copy.
1. The five classes of status code
| Class | Meaning | Action needed |
|---|---|---|
| 1xx Informational | The server received the request and is still working | None; you rarely see these |
| 2xx Success | The request worked (200 OK) | None |
| 3xx Redirection | The page lives at another address (301, 302) | Only if the redirect is wrong or loops |
| 4xx Client error | The request can't be served as asked (403, 404) | Check the URL, files, permissions and rules |
| 5xx Server error | The server couldn't complete a valid request (500, 503, 504) | Check error logs, code and resource usage |
2. How to see the real status code
The page you see may be a custom error page or a cached copy, so check the code directly:
- Browser: open developer tools (F12), go to the Network tab, reload and look at the Status column for the first request.
- Terminal: run the command below. The first line shows the code.
curl -sI "https://yourdomain.in/?t=$(date +%s)"The changing ?t= value matters on our cPanel servers. They run nginx in front of the Apache web server as a caching proxy, which keeps copies of normal pages and redirects for up to 120 minutes and can keep serving a stored copy while Apache returns a 500. A unique query string skips the stored copy.
3. 3xx: redirects
- 301 Moved Permanently tells browsers and search engines the page has moved for good. Use it when you change a URL or move to HTTPS or
www. - 302 Found is a temporary redirect. Don't use it for permanent moves; search engines may keep the old URL.
- Too many redirects means a loop, often an HTTPS or
wwwrule in.htaccessfighting a WordPress setting.
In cPanel you can add redirects under Domains › Redirects, or write rules in .htaccess. Because the cPanel cache keeps 301 and 302 responses, a redirect you just removed can appear to keep working for a while; test with ?t= before you change anything else. For rule examples, see How to redirect non-www to www and the mod_rewrite guide.
4. 4xx: the request can't be served
400 Bad Request means the request itself is malformed, often an oversized cookie; clear the site's cookies. 401 Unauthorized means the page is password-protected and the login was missing or wrong.
403 Forbidden. The server understood the request but refuses it. Common causes on shared hosting:
- file or folder permissions that are too open or too closed (use 644 for files and 755 for folders);
- a
DenyorRequirerule in.htaccess; - a security rule blocking the request, for example a form post that looks like an attack.
The full checklist is in 403 Forbidden: what it means and how to fix it.
404 Not Found. The server can't find a file at that address. Check the spelling and letter case of the URL (Linux file names are case-sensitive) and that the file was uploaded into the right folder. In WordPress, re-save Settings › Permalinks to rebuild the rewrite rules. See Resolving 404 errors.
On our cPanel servers directory listing is on by default, so a folder without an index file shows a list of its files rather than a 403. Add an index file, or turn listing off in cPanel's Indexes tool. On DirectAdmin, index.html is served before index.php if both exist, which can make an old placeholder page appear instead of your site.
5. 5xx: the server side failed
500 Internal Server Error. A catch-all: Apache couldn't finish the request. On our shared hosting the usual causes are a bad .htaccess line, a PHP fatal error, a PHP version or extension change, or a memory limit. Two traps specific to our servers:
php_valueandphp_flaglines in.htaccessalways give a 500, because none of our Linux servers run PHP as an Apache module. Set PHP values in the control panel instead (cPanel: MultiPHP INI Editor).- On DirectAdmin, an
Optionsline in.htaccessmay only use Indexes, IncludesNOEXEC, MultiViews, SymLinksIfOwnerMatch, FollowSymLinks or None. Anything else gives a 500.
Start with Troubleshooting 500 Internal Server Error.
502 Bad Gateway and 504 Gateway Timeout. A proxy in front of your site didn't get a usable answer in time. On shared hosting this is usually a PHP script that runs too long: a slow database query, a big import, or a call to a payment, SMS or shipping API with no timeout. Find the slow script in the error log and fix it; add a timeout of a few seconds to every outside call. You can raise max_execution_time in the control panel, but that only hides a script that is waiting on something. For WordPress, see Resolving common gateway errors in WordPress.
503 Service Unavailable. Either your account ran out of memory or processes, or the site is in maintenance mode. In WordPress, a leftover .maintenance file in the site's root folder after a failed update causes a 503; delete that file.
508 Resource Limit Is Reached. Our shared hosting runs CloudLinux, which gives every account a fixed share of the server. A 508 means all your account's entry processes (PHP requests running at the same moment) were busy. Running out of physical memory or processes shows as a 500 or 503 instead. Check the Faults column in cPanel's Metrics › Resource Usage, then read Understanding the "Resource Limit Is Reached" error.
Older guides suggest restarting Apache or PHP-FPM, or raising Apache and nginx timeouts. On shared hosting those settings are server-wide and customers can't change them. The fix is in your site: the code, the .htaccess file, the plugins or the traffic hitting it.
6. Read the error log first
The error log names the file, the line and the reason, so read it before changing anything.
- cPanel: open Metrics › Errors for recent web server errors. PHP also writes an
error_logfile in the folder of the failing script. - DirectAdmin: each domain has its own error log: open System Info & Files › Site summary & logs and click the domain's Error log button.
- Windows (Plesk): see Checking Plesk logs.
More detail is in Reviewing error logs in cPanel and DirectAdmin.
7. When to contact Domain India
If the log points at a server problem, or you can't find the cause, open a ticket with the exact URL, the code you saw, the time it happened and the error log line. Support is available by 24/7 live chat and by ticket, with a first response to tickets within 15 minutes; resolution time depends on the issue. Domain India shared hosting includes weekly JetBackup backups on cPanel and DirectAdmin, which you can restore from your panel if a change broke the site; see Backing up and restoring with JetBackup.
What is an HTTP status code?
A three-digit number a web server sends with every response. 2xx means success, 3xx a redirect, 4xx a problem with the request such as a missing page, and 5xx a failure on the server side.
What is the difference between a 500 and a 508 error?
A 500 is a general error, usually a bad .htaccess line or a PHP error. A 508 on Domain India shared hosting means the account used all its entry processes, the PHP requests it may run at the same moment.
Why does my site still show an error after I fixed it?
Domain India cPanel servers run a caching proxy that can keep serving stored pages and redirects for up to 120 minutes. Reload with a unique query string such as ?t=123 in a private window to see the current response.
Why does php_value in .htaccess cause a 500 error?
Domain India Linux shared servers run PHP through PHP-FPM or CGI, not as an Apache module, so Apache rejects php_value and php_flag lines. Set PHP values in the control panel instead.
How do I fix a 503 error on WordPress?
If an update was interrupted, delete the .maintenance file in the site's root folder. Otherwise check Resource Usage for memory or process faults and look for a heavy plugin or bot traffic.
Can I restart Apache or raise server timeouts on shared hosting?
No. Those settings are server-wide on shared hosting. Fix the slow script or add timeouts to outside calls; you can raise max_execution_time in the control panel if a legitimate task needs longer.
Where do I find the error log in cPanel?
Open Metrics › Errors for recent web server errors. PHP also writes an error_log file in the folder of the failing script.
Ready to track it down? Start with the 500 error guide or the 403 guide, check your account's limits in Understanding hosting resource limits, or open a support ticket with the URL, the code and the time.
Send us the page address, the status code, the time it happened and the error log line, and we will look at your account's logs with you.
Open a support ticket