7 languages, 3 pages (What/How/Start), 80-line router, 98KB total.
Features:
- No database, no Composer, no build step — just files on disk
- nginx PHP isolation: only index.php executes
- Bot detection with browser heuristic bypass
- Rate limiting, structured weekly logs, geo-location, Telegram alerts
- Multi-language: Accept-Language auto-detect, nav dropdown
- Article sub-page routing via /start/{slug}
- Apache + Caddy config alternatives documented in Start page
- Sample config — no real keys or secrets
26 lines
1.5 KiB
PHP
26 lines
1.5 KiB
PHP
<?php
|
|
// Language file — EN
|
|
define('LANGUAGE_TITLE','Language');
|
|
define('PAGE_00_TXT','What');
|
|
define('PAGE_01_TXT','How');
|
|
define('PAGE_02_TXT','Start');
|
|
define('PAGE_03_TXT','');
|
|
define('PAGE_04_TXT','');
|
|
define('PAGE_05_TXT','');
|
|
define('DISCLAIMER','');
|
|
define( 'ERROR_400', '<center><strong>400 Bad Request</strong></center>');
|
|
define( 'ERROR_401', '<center><strong>401 Unauthorized</strong></center>');
|
|
define( 'ERROR_403', '<center><strong>403 Forbidden</strong></center>');
|
|
define( 'ERROR_404', '<center><strong>404 Not Found</strong></center>');
|
|
define( 'ERROR_405', '<center><strong>405 Method Not Allowed</strong></center>');
|
|
define( 'ERROR_408', '<center><strong>408 Request Timeout</strong></center>');
|
|
define( 'ERROR_409', '<center><strong>409 Conflict</strong></center>');
|
|
define( 'ERROR_410', '<center><strong>410 Gone</strong></center>');
|
|
define( 'ERROR_415', '<center><strong>415 Unsupported Media Type</strong></center>');
|
|
define( 'ERROR_429', '<center><strong>429 Too Many Requests</strong></center>');
|
|
define( 'ERROR_500', '<center><strong>500 Internal Server Error</strong></center>');
|
|
define( 'ERROR_501', '<center><strong>501 Not Implemented</strong></center>');
|
|
define( 'ERROR_502', '<center><strong>502 Bad Gateway</strong></center>');
|
|
define( 'ERROR_503', '<center><strong>503 Service Unavailable</strong></center>');
|
|
define( 'ERROR_504', '<center><strong>504 Gateway Timeout</strong></center>');
|
|
define( 'ERROR_default', '<center><strong>An Error Occurred</strong></center>');
|