html - Rewriterule htaccess 在错误的文件夹中搜索 css

标签 html css .htaccess

当我添加我的 HTAccess 重写规则时,我的路径为 scr实习生使用的属性正在转移。对于第一条规则,所有 CSS 都可以正常工作,但是当它在链接中添加第二个变量时,我的 css 文件和脚本文件突然从错误的文件夹中调出。

Options +FollowSymLinks
RewriteEngine On
RewriteBase /jellyfish_rework/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)$ index.php?p=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/([^/]*)$ index.php?p=$1&t=$2 [L]

在第一条规则中,一切都很完美。例如,当我的链接使用一个变量(页面的 p 变量)时,它会按预期工作。本例中的链接最终为 http://localhost/jellyfish_rework/blog .并且 css 和脚本被正常调用

<link href="css/jellyfish.css" rel="stylesheet" type="text/css">然后将是我的 css 样式表的链接。

但是,当我的 t(代表标题)变量被填充时,例如当我试图在我的博客中查找特定的帖子时,我的整个链接都会改变。 Chrome 控制台将在 http://localhost/jellyfish_rework/artikel/Lancering-van-onze-nieuwe-website 上输出以下内容:

GET http://localhost/jellyfish_rework/artikel/css/font-awesome.min.css  Lancering-van-onze-nieuwe-website:23
GET http://localhost/jellyfish_rework/artikel/css/jellyfish.css  Lancering-van-onze-nieuwe-website:24
GET http://localhost/jellyfish_rework/artikel/css/bootstrap.min.css  Lancering-van-onze-nieuwe-website:22
GET http://localhost/jellyfish_rework/artikel/css/animate.css  Lancering-van-onze-nieuwe-website:25
GET http://localhost/jellyfish_rework/artikel/js/custom/knob.js  Lancering-van-onze-nieuwe-website:168
GET http://localhost/jellyfish_rework/artikel/js/bootstrap/bootstrap.min.js  Lancering-van-onze-nieuwe-website:166
GET http://localhost/jellyfish_rework/artikel/js/custom/wow.min.js  Lancering-van-onze-nieuwe-website:167
GET http://localhost/jellyfish_rework/artikel/js/custom/jellyfish.js  Lancering-van-onze-nieuwe-website:169 

为什么要添加 /article/我的脚本和 css 的相对路径?我该如何解决这个问题?

最佳答案

由于在 css/js/images 中使用相对 URL,您遇到了这个问题。您可以通过以下方式之一修复它:

  1. 在您的 css、js、图像文件中使用绝对路径,而不是相对路径。这意味着您必须确保这些文件的路径以 http:// 开头或斜线 / .

  2. 否则尝试将此添加到您页面的 HTML header 中:<base href="/" />这样每个相对 URL 都是从该 URL 而不是当前 URL 解析的。

关于html - Rewriterule htaccess 在错误的文件夹中搜索 css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26618174/

相关文章:

php - htaccess IfModule 条件失败

html - css - @font-face 跨域请求失败。资源访问受到限制。

javascript - 使用javascript设置iframe的高度

c# - 在 Internet Explorer 中删除不需要的垂直滚动条

html - 字体没有出现

html - Div 不能像 inline-block 一样正确

javascript - AngularJS 中的切换指令

linux - 如何将所有 HTTPs 请求重定向到 HTTP

HTML/CSS 下拉导航菜单

html - html/css 中类似框元素的全宽标题