Как включить CSS/JS и другие файлы с маршрутизацией PHP и.htaccess

Я пытаюсь применить CSS к HTML с помощью класса маршрутизации PHP, но это не работает...

Я хочу, чтобы стиль красного цвета H1 был включен, вот код...

.htaccess

RewriteEngine On
RewriteRule ^(.*)$ index.php?p=/$1 [QSA,L]

index.php

<?php
class R 
{
    private $r = [];
    function a($r, callable $c)
    {
        $this->r[$r] = $c;
    }

function e() {
    $p = $_GET['p'];
    $k = isset($this->r[$p]) ? $this->r[$p] : $this->r[''];
    $k();
}
}

$router = new R;

$router->a('/', function(){
    include "page/home.php";
});

$router->e();
?> 

home.php

<html>
<head>
   <link rel="stylesheet" href="style.css">
</head>
<body>
<h1>Colorized.</h1>
</body>
</html>

style.css

h1 {
color: red;
}

Как я могу заставить это работать с любыми файламиCSS/JS, которые были добавлены в HTML?

1 ответ

Похоже, ваше правило переписывает файлы css и js обратно в index.php, и поэтому они не загружаются. Вы должны исключить эти файлы из правила.

Вы можете использовать это:

RewriteEngine on
RewriteRule ^((?!\.js|\.css).*)$ /index.php?p=/$1 [L]

И чтобы исправить относительный Uris, добавьте следующее в заголовок вашей веб-страницы

<base href="/">
Другие вопросы по тегам