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

标签 php html css .htaccess routes

我正在尝试使用 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 文件使其工作?

最佳答案

看起来您的规则是将 css 和 js 文件重写回 index.php,这就是它们未加载的原因。您需要从规则中排除这些文件。

你可以使用这个:

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

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

<base href="/">

关于php - 如何使用 PHP 路由和 .htaccess 包含 CSS/JS 和其他文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41693757/

相关文章:

javascript - 获取div中标签文本的大小?

PHP更新功能

javascript - 在 JavaScript 中调用 Controller 方法来加载 View - CodeIgniter

javascript - AutoPostBack 导致隐藏的 div 崩溃

javascript - 如何将 HTML POST 数据转换为 JSON?

CSS 垂直居中图片和文字

html - Web 内容编辑器 - 帮助或意见

php - 在 wordpress 中安装 jquery 插件?

php - Symfony2 身份验证 : How can I select a user provider dynamically?

html - 在 HTML 中,如果我将一个 img 放置在另一个 img 之后,我如何才能让它不占用两倍的空间?