如何让绝对URL在本地工作?

时间:2015-12-04 10:35:30

标签: php url absolute

我的实时网站上的所有内容都是我想要的,但因为我在header.phpfooter.php中使用绝对网址,当我在本地工作时(XAMPP)它们不起作用 - 我无法弄清楚如何让它在两者上工作。

的header.php

<div id="top"><center><img src="http://cosworth-europe.com/images/header.png" style="max-width:100%;"></center></div>
<header id="header" class="site-header" role="banner">
<div id="header-inner" class="container sixteen columns over">
<hgroup class="one-third column alpha">

</hgroup>
    <nav id="main-nav" class="two thirds column omega">
        <ul>
            <li>
                <a href="http://www.cosworth-europe.co.uk/index.php">Home</a>
            </li>
            <li>
                <a href="http://www.cosworth-europe.co.uk/about-us.php">About Us</a>
            </li>
            <li>
                <a href="http://www.cosworth-europe.co.uk/news.php">News</a>
            </li>
            <li>
                <a href="http://www.cosworth-europe.co.uk/dealers.php">Dealers</a>
            </li>
            <li>
                <a href="http://www.cosworth-europe.co.uk/products.php">Products</a>
            </li>
            <li>
                <a href="http://www.cosworth-europe.co.uk/shop">Buy Online</a>
            </li>
            <li>
                <a href="http://www.cosworth-europe.co.uk/contactus.php">Contact</a>
            </li>
        </ul>
    </nav>

</div>
</header>

抓取代码header.php

<?php include($_SERVER['DOCUMENT_ROOT']."/header.php"); ?>

FTP文件夹结构 **FTP Folder Structure**

5 个答案:

答案 0 :(得分:1)

始终使用相对网址,至少使用相关网址。

<link rel="stylesheet" href="/css/style.css" />

如果您真的想使用绝对网址,请将变量设置为$homeroot并以这种方式使用它:

<link rel="stylesheet" href="<?php echo $homeroot; ?>/css/style.css" />

你可以这样声明:

$homeroot = "http://my.example.com";

如果你仍然希望它更好,你可以这样使用:

$homeroot = $_SERVER["HTTP_HOST"];

答案 1 :(得分:1)

你应该使用相对网址,推荐它的便携性。               

</hgroup>
    <nav id="main-nav" class="two thirds column omega">
        <ul>
            <li>
                <a href="/index.php">Home</a>
            </li>
            <li>
                <a href="/about-us.php">About Us</a>
            </li>
            <li>
                <a href="/news.php">News</a>
            </li>
            <li>
                <a href="/dealers.php">Dealers</a>
            </li>
            <li>
                <a href="/products.php">Products</a>
            </li>
            <li>
                <a href="/shop">Buy Online</a>
            </li>
            <li>
                <a href="/contactus.php">Contact</a>
            </li>
        </ul>
    </nav>

</div>
</header>

答案 2 :(得分:1)

你可以做两件事。

首先 -

<a href="/index.php">Home</a> // The relative urls

第二 -

使用主机名定义变量 -

$host = ($_SERVER['HTTP_HOST'] === 'www.cosworth-europe.co.uk') ? 'http://www.cosworth-europe.co.uk' : 'http://localhost';

<a href="<?php echo $host;?>/index.php">Home</a>

答案 3 :(得分:1)

你不应该使用绝对URL,如果你有时必须改变一些东西,那么你就会有很大的麻烦。

您应该使用函数或相对URL。

功能示例:

function getURL() {
    //get THIS ($develop) value from a config file
    $develop = true;

    return ( $develop ) ? "localhost" : "http://".$_SERVER["HTTP_HOST"];
}

<a href="<?php echo getURL(); ?>/index.php">Home</a>

<强>快捷帮助: 只需编辑您的主机文件,如下所示:

127.0.0.1   www.cosworth-europe.co.uk

相对网址(相对于此示例中的文档根目录)

<ul>
    <li>
        <a href="/index.php">Home</a>
    </li>
    <li>
        <a href="/about-us.php">About Us</a>
    </li>
    <li>
        <a href="/news.php">News</a>
    </li>
</ul>

答案 4 :(得分:0)

如果您希望在不修改源文件的情况下

实际上,您不应该使用绝对URL,但仍然可以使其在本地工作,您需要在hosts文件中进行少量更改。我不知道你当前在哪个操作系统,所以你可以编辑这样的主机:

<强> Ubuntu的:

在您的终端中,输入

sudo gedit /etc/hosts

您需要输入密码。 在打开的文件中,将此行添加到结尾:

127.0.0.1   www.cosworth-europe.co.uk

<强>窗:

c:\windows\system32\drivers\etc\hosts

在具有管理权限的记事本中打开它并添加上述行。现在本地的工作方式与您的实时网站类似。

[但如果您想访问实时网站(www.cosworth-europe.co.uk),请务必删除这些内容]

请参阅此pictorial表示。在此方法中,您暂时无需更改文件。但强烈建议使用相对URL以获得出色的可移植性!