-3

我看到了许多与我遇到的类似的问题,但我已经遵循了我从中得到的每一个解决方案,而且似乎我无法让它在没有冲突的情况下运行。

HTML CSS 调用:

<head>
<base href="http://localhost/smartwavedev.sw_apiwebtool/" />
<link rel="stylesheet" href="assets/css/main.css" type="text/css">
<link rel="stylesheet" href="assets/css/login.css" type="text/css">
<link rel="stylesheet" href="assets/css/dashboard.css" type="text/css">
<link rel="stylesheet" href="assets/css/bootstrap/bootstrap.min.css" type="text/css">
<link rel="stylesheet" href="assets/css/docs.css" type="text/css">
</head>

.htaccess

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^/]+)$ $1.php
RewriteRule ^([^/]+)/([^/]+)$ $1.php?page=$2
RewriteRule ^([^/]+)/([^/]+)/([^/]+)$ $1.php?page=$2&nav=$3

谢谢您的帮助!

4

1 回答 1

1

首先,这种情况是畸形的:

RewriteCond %{REQUEST_FILENAME}\.php -f

它应该只是:

RewriteCond %{REQUEST_FILENAME} !-f

现在它将在所有文件上触发。接下来, aRewriteCond将只匹配它后面的第一个 RewriteRule。因此,具有 3 个元素的第三条规则仍然匹配(并因此阻止)您的 CSS 文件。您要么需要重复RewriteCond所有规则的行,要么实施更好的解决方案。对于您的具体情况,我真的建议放弃整个重写概念并将其替换为:

 FallbackResource index.php

$_SERVER['REQUEST_URI']然后在index.php文件中解析。

于 2013-05-14T07:07:32.683 回答