CSS不加载2`/`在url

问题描述:

我有这个.htaccess文件:CSS不加载2`/`在url

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] 
</IfModule> 

而在我的index.php,我有这样的:

<!DOCTYPE HTML> 
<?php 
include "php/config.php"; 
include "php/RemoteAddress.php"; 

$remoteAddress = new RemoteAddress(); 

$ip = $remoteAddress -> getIpAddress(); // The clients ip address; 
$tid = date("Y-m-d_H-i-s"); // A string representing the time 

$fir = "hjem"; 
$sec = ""; 

$tot = isset($_GET[ 'url' ]) ? $_GET[ 'url' ] : ""; 
$tot = str_replace("#", "", $tot); 
$split = explode("/", $tot); 
if(isset($split[0]) && $split[0] !== "") $fir = $split[0]; 
if(isset($split[1]) && $split[1] !== "") $sec = $split[1]; 

if($fir == "hjem") 
{ 
    $page = "home.php"; 
} 
else if($fir == "regler") 
{ 
    $page = "rules.php"; 
} 
else if($fir == "nyheter") 
{ 
    $page = "news.php"; 
} 
else if($fir == "om") 
{ 
    $page = "about.php"; 
} 
else if($fir == "kontakt") 
{ 
    $page = "contact.php"; 
} 
else 
{ 
    $page = "page_not_found.php"; 
} 

include 'php/content/header.php'; 
echo "\n".'  <div id="contents">'."\n"; 
include "php/content/".$page; 
echo "\n".'  </div>'; 
include 'php/content/footer.php'; 
?> 

而且问题如果我有网址localhost/hjem它的工作原理是完美的,但如果我有localhost/hjem/localhost/hjem/info浏览器不加载css文件。

你们能告诉我为什么吗?我如何解决这个问题?

编辑:从浏览器

的源代码:的

<!DOCTYPE HTML> 
<html> 
<head> 
    <meta charset="UTF-8"> 
    <title>Nordbyen</title> 
    <link rel="stylesheet" href="css/style.css" type="text/css"> 
</head> 
<body> 
    <div id="header"> 
     <div> 
      <div class="logo"> 
       <a href="hjem"></a> 
      </div> 
      <ul id="navigation"> 
       <li class="active"> 
        <a href="hjem">Hjem</a> 
       </li> 
       <li> 
        <a href="regler">Regler</a> 
       </li> 
       <li> 
        <a href="nyheter">Nyheter</a> 
       </li> 
       <li> 
        <a href="om">Om</a> 
       </li> 
       <li> 
        <a href="kontakt">Kontakt</a> 
       </li> 
      </ul> 
     </div> 
    </div> 
    <div id="contents"> 

     <style> 
      table { 
       border-spacing: 0; 
       border-collapse: collapse; 
      } 
     </style> 
     <div id="tagline" class="clearfix"> 
      <h1>Nordbyen - Norsk Datafreak Forum</h1> 
      <div> 
       <p> 
        Jeg har startet på et nytt prosjekt, et norsk forum for forskjellige Java prosjekter. 
       </p> 
       <p> 
        Ideén bak dette er å skape et lite miljø for de norske som enten kan eller ønsker å lære <a href="http://no.wikipedia.org/wiki/Java_(programmeringsspr%C3%A5k)" target="_blank">Java</a> 
       </p> 
       <p> 
        Dette er bare startfasen, så jeg vet ikke hvordan dette vil bli, men håper på både en bra og inspirerende side samt mange aktive medlemmer 
       </p> 
      </div> 
      <div> 
       <p> 
        Han du tro på prosjektet og ønsker du å delta? Bli med å bygge opp og vedlikeholde prosjektet ved å kontakte ...: 
       </p> 
       <table> 
        <tr> 
         <td><p>Kontakt meg på:</p></td> 
         <td></td> 
        </tr> 
        <tr> 
         <td><p>Skype:</p></td> 
         <td><p>...</p></td> 
        </tr> 
        <tr> 
         <td><p>Facebook:</p></td> 
         <td><p>(<a href="https://www.facebook.com/..." target="_blank">...</a>)</p></td> 
        </tr> 
        <tr> 
         <td><p>Mail:</p></td> 
         <td><p>...</p></td> 
        </tr> 
       </table> 
      </div> 
     </div> 
    </div>   
    <div id="footer"> 
     <div class="clearfix"> 
      <p> 
       © 2014 .... All Rights Reserved. 
      </p> 
     </div> 
    </div> 
</body> 
</html> 
+0

发布'php/content/header.php'或HTML输出的内容。 – 2014-10-12 09:24:04

+0

来自浏览器的新增 – l0lkj 2014-10-12 09:26:51

你的链接到你的CSS是 “CSS/style.css文件”。这是一个相对的网址。相对于什么?对,它与浏览器地址栏中的网址相关。如果您访问localhost/hjem,则前缀为localhost/,您请求的页面为hjem。当您访问localhost/hjem/时,则前缀为localhost/hjem/。它试图加载localhost/hjem/css/style.css,这显然失败了。

你有两个选择:

  • 使用绝对路径。您可以使用/css/style.css。这将加载它相对于您的域的根,在这种情况下,localhost/css/style.css
  • 您可以使用base-html标签,如下所示:<base href="/">mdn)。这将加载任何相对于基础标签的href元素的相对URL,因此加载localhost/css/style.css
+0

这解决了我的问题:) – l0lkj 2014-10-12 09:40:04

,而不是相对URL对CSS的尝试绝对URL。 我认为问题存在于相对地址。

这样的:

<link rel="stylesheet" href="http://yoursite.com/PATH_TO_CSS_FILE" type="text/css"> 
+0

由于某种原因,这不起作用 – l0lkj 2014-10-12 09:40:31

+0

我可以问你,你把什么放在href部分? – 2014-10-12 10:10:03

+0

我添加了/因此它变成了'/ css/style.css'。 – l0lkj 2014-10-12 10:16:59