.htaccess 根更改为 mod_rewrite

.htaccess root changed with mod_rewrite

所以我正在尝试像这样重写 URL:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*) index.php?page= [QSA]

工作完美,但 JavaScript 和 CSS 的相对路径搞砸了。

下面的行不应该排除文件吗?

  RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-f 确保现有文件不会被重写,因此 images/css/js 文件不会被路由到 index.php.

但是您的问题似乎是 images/css/js 的相对路径的使用。确保在 css、js、图像文件中使用绝对路径而不是相对路径。这意味着您必须确保这些文件的路径以 http:// 或斜杠 /.

开头

否则您可以将此添加到页面 HTML 的 <head> 部分:

<base href="/" />

这样每个 亲戚 URL 都是从那个基础 URL 解析的,而不是从当前页面的 URL.