Как включить 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="/">