我看到许多与我遇到的问题类似的问题,但我已经遵循了我从中得到的每一个解决方案,似乎我无法让它在没有冲突的情况下运行。
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
感谢您的帮助!
答案 0 :(得分:1)
首先,这种情况不正确:
RewriteCond %{REQUEST_FILENAME}\.php -f
应该是:
RewriteCond %{REQUEST_FILENAME} !-f
现在它将触发所有文件。接下来,RewriteCond
只会匹配其后的第一个 RewriteRule
。因此,具有3个元素的第三个规则仍然匹配(并因此阻止)您的CSS文件。您需要为所有规则重复RewriteCond
行,或者实施更好的解决方案。对于您的具体情况,我真的建议删除整个重写的概念,并将其替换为:
FallbackResource index.php
然后在$_SERVER['REQUEST_URI']
文件中解析index.php
。