css和图像冲突。 htaccess rewriterule

时间:2013-05-14 06:58:37

标签: php .htaccess

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

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

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

首先,这种情况不正确:

RewriteCond %{REQUEST_FILENAME}\.php -f

应该是:

RewriteCond %{REQUEST_FILENAME} !-f

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

 FallbackResource index.php

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