如果我在网址中有2个`/`,则不会加载Css

时间:2014-10-12 09:21:52

标签: php html css apache .htaccess

我有这个.htaccess文件:

<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>

2 个答案:

答案 0 :(得分:2)

而不是css的相对url尝试绝对url。 我认为问题存在于相对地址中。

像这样:

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

答案 1 :(得分:2)

您的css链接是&#34; css / style.css&#34;。这是一个相对网址。相对于什么?是的,它是相对于浏览器地址栏中的url。如果您访问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