URL重写混乱了css / js

时间:2015-05-17 16:22:08

标签: .htaccess mod-rewrite url-rewriting

我想要实现的是

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=$1

1 个答案:

答案 0 :(得分:1)

首先,您可以改善规则

Options -MultiViews

RewriteEngine On
RewriteBase /

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

然后,由于您的规则(/register/)而创建了一个虚拟文件夹,并且您正在使用相对路径(而不是绝对路径),你的链接不再好了。

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

  • 为所有css(和js,img等)链接添加一个前导斜杠 例如:href="/css/style.css"而不是href="css/style.css"
  • <head>之后的所有相关网页中添加此标记:<base href="/">(这将避免您逐个替换每个链接)