URL 重写混乱 css/js

URL rewriting messes css/js up

我想要实现的是

domain.com/register/free

那就是

domain.com/register.php?type=free

当我去 domain.com/register 时,页面加载正常,但如果我放置下一个 /free 部分,它找不到 css 或 js 图像等。不太确定我在哪里出错了,但这是我的 .htaccess 文件:

RewriteRule ^register$ register.php
RewriteRule ^register/$ register.php

RewriteRule ^register/([a-zA-Z0-9\-\_]+)$ register.php?type=

首先,你可以改进你的规则

Options -MultiViews

RewriteEngine On
RewriteBase /

RewriteRule ^register/?$ register.php [L]
RewriteRule ^register/([a-zA-Z0-9_-]+)$ register.php?type= [L]

然后,由于您根据规则 (/register/) 创建了一个虚拟文件夹,并且您使用的是 relative 路径(而不是 absolute 路径),你的 link 已经不行了。

两个选项(都使用绝对路径):

  • 为所有 css(以及 js、img 等)link 添加前导斜线。
    例如:href="/css/style.css" 而不是 href="css/style.css"
  • 在您所有相关页面的 <head> 之后添加此标签:<base href="/">(这将避免您逐一替换每个 link)