- Add responsive sidebar with hamburger toggle functionality - Implement dual toggle buttons (inner/outer) for better UX - Fix sidebar positioning to not overlap header and footer - Add sticky footer with proper z-index layering - Download and integrate Bootstrap source maps locally - Optimize toggle icons: smaller, cleaner, no button styling - Ensure sidebar respects footer boundaries - Add smooth transitions and hover effects - Fix active page highlighting and folder auto-expansion - Create professional W3Schools-style navigation - Maintain full offline capability with local assets
52 lines
1.5 KiB
PHP
52 lines
1.5 KiB
PHP
<?php
|
|
// Router file for PHP development server to handle security and static files
|
|
|
|
$requestUri = $_SERVER['REQUEST_URI'];
|
|
$parsedUrl = parse_url($requestUri);
|
|
$path = $parsedUrl['path'];
|
|
|
|
// Block direct access to content directory
|
|
if (strpos($path, '/content/') === 0) {
|
|
http_response_code(403);
|
|
echo '<h1>403 - Forbidden</h1><p>Direct access to content files is not allowed.</p>';
|
|
return true;
|
|
}
|
|
|
|
// Block access to sensitive files
|
|
$sensitiveFiles = ['.htaccess', 'config.php'];
|
|
foreach ($sensitiveFiles as $file) {
|
|
if (basename($path) === $file && dirname($path) === '/') {
|
|
http_response_code(403);
|
|
echo '<h1>403 - Forbidden</h1><p>Access to this file is not allowed.</p>';
|
|
return true;
|
|
}
|
|
}
|
|
|
|
// Serve static files from engine/assets
|
|
if (strpos($path, '/engine/') === 0) {
|
|
$filePath = __DIR__ . $path;
|
|
if (file_exists($filePath)) {
|
|
// Set appropriate content type
|
|
$extension = strtolower(pathinfo($filePath, PATHINFO_EXTENSION));
|
|
$mimeTypes = [
|
|
'css' => 'text/css',
|
|
'js' => 'application/javascript',
|
|
'svg' => 'image/svg+xml',
|
|
'woff' => 'font/woff',
|
|
'woff2' => 'font/woff2',
|
|
'ttf' => 'font/ttf'
|
|
];
|
|
|
|
if (isset($mimeTypes[$extension])) {
|
|
header('Content-Type: ' . $mimeTypes[$extension]);
|
|
}
|
|
|
|
// Serve the file
|
|
readfile($filePath);
|
|
return true;
|
|
}
|
|
}
|
|
|
|
// Route all other requests to index.php
|
|
include __DIR__ . '/index.php';
|
|
return true; |