Error map

rewrite or internal redirection cycle Nginx: [error] rewrite or internal redirection cycle while internally redirecting to "/index.php" (500 Internal Server Error)

Nginx / Apache · layer 3, Edge & web server

Open the full error page →

Centre: this error. First ring: errors it is linked with (7). Outer ring: what those are linked with. Colours show the layer of a request each error belongs to. Click any dot to re-centre the map on it; hover to follow its connections. The centre dot opens the error page.

rewrite or internal redirection cycle — Nginx: [error] rewrite or internal redirection cycle while internally redirecting to "/index.php" (500 Internal Server Error) (Nginx / Apache)rewrite or …Primary script unknown — FastCGI sent in stderr: "Primary script unknown" (PHP)Primary script unkn…AH00124: Request exceeded the limit of 10 internal redirects — Apache: AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary (Nginx / Apache)AH00124: Request ex…499 Client Closed Request / client prematurely closed connection — Nginx: [info] client prematurely closed connection while reading response header from upstream / access log status 499 (Nginx / Apache)499 Client Closed R…404 on all routes except home (public folder / .htaccess) — Laravel on shared hosting: homepage works but every other route returns 404 Not Found (Laravel)404 on all routes e…ModSecurity: Access denied with code 403 — Nginx/Apache: ModSecurity: Access denied with code 403 (phase 2). Matched "Operator GE matched 5 at TX:anomaly_score" (Nginx / Apache)ModSecurity: Access…nginx: client intended to send too large body — Nginx: [error] client intended to send too large body: 5242880 bytes (413 Request Entity Too Large) (Nginx / Apache)nginx: client inten…directory index of "/var/www/" is forbidden — Nginx: [error] directory index of "/var/www/html/" is forbidden (403 Forbidden) (Nginx / Apache)directory index of …403 — HTTP 403 Forbidden (HTTP)403404 — HTTP 404 Not Found (HTTP)404502 — HTTP 502 Bad Gateway (HTTP)502404 except homepage — WordPress: 404 Not Found on every page except the homepage (permalinks / .htaccess / Nginx rules) (WordPress)404 except homepageAH00558 — Apache: AH00558: apache2: Could not reliably determine the server's fully qualified domain name (Nginx / Apache)AH00558AH00526: Syntax error on line of apache config — Apache: AH00526: Syntax error on line 12 of /etc/apache2/sites-enabled/site.conf: Invalid command 'Foo', perhaps misspelled or defined by a module not included in the server configuration (Nginx / Apache)AH00526: Syntax err…500 — HTTP 500 Internal Server Error (HTTP)500504 — HTTP 504 Gateway Timeout (HTTP)504499 — HTTP 499 Client Closed Request (Nginx) (HTTP)499Route [login] not defined — Laravel: Symfony\Component\Routing\Exception\RouteNotFoundException: Route [login] not defined (Laravel)Route [login] not d…Unable to prepare route for serialization. Uses Closure — Laravel: LogicException: Unable to prepare route [dashboard] for serialization. Uses Closure. (Laravel)Unable to prepare r…Storage files 404: public/storage symlink missing — Laravel: 404 for /storage/file.jpg — symlink(): No such file or directory / The [public/storage] link already exists (Laravel)Storage files 404: …1020 — Cloudflare Error 1020: Access Denied (Cloudflare)1020bind() failed (98: Address already in use) — nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) (Linux)bind() failed (98: …cf-mitigated: challenge — API/app requests get 403 with cf-mitigated: challenge (Bot Fight Mode / challenge on non-browser clients) (Cloudflare)cf-mitigated: chall…413 — HTTP 413 Content Too Large (Request Entity Too Large) (HTTP)413EMFILE — Too many open files (EMFILE) (Linux)EMFILELink expired — WordPress: The link you followed has expired (WordPress)Link expiredopen() failed (13: Permission denied) — Nginx: [error] open() "/home/user/site/index.html" failed (13: Permission denied), 403 Forbidden (Nginx / Apache)open() failed (13: …Welcome to nginx! shown instead of my site — Browser: Welcome to nginx! If you see this page, the nginx web server is successfully installed and working (Nginx / Apache)Welcome to nginx! s…AH01630: client denied by server configuration — Apache: [authz_core:error] AH01630: client denied by server configuration: /var/www/html/ (Nginx / Apache)AH01630: client den…

Directly related (7)

Primary script unknownPHP

FastCGI sent in stderr: "Primary script unknown"

Nginx passed a script path to PHP-FPM that PHP-FPM couldn’t find — usually a wrong SCRIPT_FILENAME or root.

AH00124: Request exceeded the limit of 10 internal redirectsNginx / Apache

Apache: AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary

Rewrite rules loop internally, so Apache aborts with a 500.

499 Client Closed Request / client prematurely closed connectionNginx / Apache

Nginx: [info] client prematurely closed connection while reading response header from upstream / access log status 499

The client (browser, mobile app, load balancer) disconnected before Nginx finished the response; Nginx logs status 499.

404 on all routes except home (public folder / .htaccess)Laravel

Laravel on shared hosting: homepage works but every other route returns 404 Not Found

The web server isn't sending requests to `public/index.php`, so only the root path works — the rewrite rules aren't active.

ModSecurity: Access denied with code 403Nginx / Apache

Nginx/Apache: ModSecurity: Access denied with code 403 (phase 2). Matched "Operator GE matched 5 at TX:anomaly_score"

The ModSecurity WAF (OWASP Core Rule Set) blocked the request as suspicious.

nginx: client intended to send too large bodyNginx / Apache

Nginx: [error] client intended to send too large body: 5242880 bytes (413 Request Entity Too Large)

A request body exceeded `client_max_body_size` (default 1 MB), so Nginx returned 413 before reaching your app.

directory index of "/var/www/" is forbiddenNginx / Apache

Nginx: [error] directory index of "/var/www/html/" is forbidden (403 Forbidden)

A directory was requested but no index file exists (or index is wrong) and autoindex is off, so Nginx returns 403.

Two steps away (21)

403HTTP

HTTP 403 Forbidden

The server understood the request but refuses to authorize it — you (or the server process) are not allowed to access this resour…

404HTTP

HTTP 404 Not Found

The server can’t find anything at the requested URL.

502HTTP

HTTP 502 Bad Gateway

A proxy or gateway (Nginx, load balancer, CDN) got an invalid response — or no response — from the upstream server behind it.

404 except homepageWordPress

WordPress: 404 Not Found on every page except the homepage (permalinks / .htaccess / Nginx rules)

Pretty permalinks aren’t being routed to index.php — .htaccess is missing/ignored (Apache) or Nginx lacks try_files.

AH00558Nginx / Apache

Apache: AH00558: apache2: Could not reliably determine the server's fully qualified domain name

A harmless startup warning: Apache has no global ServerName, so it guessed one from the host’s IP.

AH00526: Syntax error on line of apache configNginx / Apache

Apache: AH00526: Syntax error on line 12 of /etc/apache2/sites-enabled/site.conf: Invalid command 'Foo', perhaps misspelled or defined by a module not included in the server configuration

Apache's config has a syntax problem or a directive from a module that isn't loaded.

500HTTP

HTTP 500 Internal Server Error

The server hit an unexpected condition — usually an unhandled exception or misconfiguration in the application.

504HTTP

HTTP 504 Gateway Timeout

A proxy or gateway waited too long for the upstream server to respond and gave up.

499HTTP

HTTP 499 Client Closed Request (Nginx)

Nginx-specific code logged when the client disconnected before the server finished responding.

Route [login] not definedLaravel

Laravel: Symfony\Component\Routing\Exception\RouteNotFoundException: Route [login] not defined

Code called route('name') for a route name that doesn’t exist — very often route('login') from the auth middleware in API-only ap…

Unable to prepare route for serialization. Uses ClosureLaravel

Laravel: LogicException: Unable to prepare route [dashboard] for serialization. Uses Closure.

`php artisan route:cache` failed because a route uses a closure, which can't be cached.

Storage files 404: public/storage symlink missingLaravel

Laravel: 404 for /storage/file.jpg — symlink(): No such file or directory / The [public/storage] link already exists

Uploaded files stored in `storage/app/public` aren't reachable because the `public/storage` symlink doesn't exist or points to th…

1020Cloudflare

Cloudflare Error 1020: Access Denied

A Cloudflare firewall/WAF custom rule blocked the request — the visitor’s IP, country, user agent or request pattern matched a bl…

bind() failed (98: Address already in use)Linux

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

Nginx (or another server) can’t listen on the port because another process already holds it — often Apache, another Nginx, or a s…

cf-mitigated: challengeCloudflare

API/app requests get 403 with cf-mitigated: challenge (Bot Fight Mode / challenge on non-browser clients)

Cloudflare is answering API calls, webhooks or mobile-app requests with a challenge page (HTML 403) because bot protection treats…

413HTTP

HTTP 413 Content Too Large (Request Entity Too Large)

The request body is bigger than the server is willing to accept — usually a file upload over the configured limit.

EMFILELinux

Too many open files (EMFILE)

The process hit its file-descriptor limit — sockets, files and pipes all count.

Link expiredWordPress

WordPress: The link you followed has expired

Usually an upload (theme, plugin, media) larger than PHP’s upload/post limits — WordPress receives an empty request and shows thi…

open() failed (13: Permission denied)Nginx / Apache

Nginx: [error] open() "/home/user/site/index.html" failed (13: Permission denied), 403 Forbidden

The nginx worker user can't read the requested file or traverse a parent directory.

Welcome to nginx! shown instead of my siteNginx / Apache

Browser: Welcome to nginx! If you see this page, the nginx web server is successfully installed and working

Requests are served by the default server block, not your site's block.

AH01630: client denied by server configurationNginx / Apache

Apache: [authz_core:error] AH01630: client denied by server configuration: /var/www/html/

Apache 2.4 authorisation denied access to the directory (403) because no `Require all granted` applies.