如何使用PHP路由和.htaccess包含CSS / JS和其他文件

时间:2017-01-17 09:45:41

标签: php html css .htaccess routing

我正在尝试使用PHP路由类在HTML上应用CSS,但它不起作用......

我希望包含 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;
}

如何使用HTML中添加的任何 CSS / JS 文件来完成此工作?

1 个答案:

答案 0 :(得分:0)

看起来你的规则是将css和js文件重写为index.php,这就是为什么它们没有加载。您需要从规则中排除这些文件。

您可以使用:

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

要修复相对的uris,请在您网页的主题部分添加以下内容

<base href="/">