如何让绝对 URL 在本地工作?
How do I get absolute URL's to work locally?
在我的实时网站上,一切都按照我想要的方式运行,但是因为我在我的 header.php
和 footer.php
中使用绝对 URL,当我我在本地工作 (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 文件夹结构
始终使用相对 URL,至少到域。
<link rel="stylesheet" href="/css/style.css" />
如果您真的想使用绝对 URL,请将变量设置为 $homeroot
并按以下方式使用它:
<link rel="stylesheet" href="<?php echo $homeroot; ?>/css/style.css" />
你可以这样声明:
$homeroot = "http://my.example.com";
如果你还想要更好的,可以这样使用:
$homeroot = $_SERVER["HTTP_HOST"];
如果你想让它工作而不编辑你的源文件:
实际上,您不应该使用绝对 URL's,但您仍然可以让它在本地工作,您需要在 hosts
文件中进行小的更改。我不知道你现在在哪个OS,所以你可以这样编辑主机:
Ubuntu:
在您的终端中,输入
sudo gedit /etc/hosts
您将需要输入密码。
在打开的文件中将此行添加到末尾:
127.0.0.1 www.cosworth-europe.co.uk
Windows:
c:\windows\system32\drivers\etc\hosts
在具有管理权限的记事本中打开它并添加以上行。现在本地的工作方式与您的实时网站类似。
[但是如果你想访问实时网站,请确保删除这些行(www.cosworth-europe.co.uk)]
pictorial 表示见此。在这种方法中,您暂时不需要更改文件。但是强烈推荐使用相对的URLs以获得极佳的可移植性!
您应该使用相对网址,建议使用相对网址以实现可移植性。
</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>
你可以做两件事。
首先 -
<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>
你不应该使用绝对 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
相对 URL(在此示例中相对于文档根目录)
<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>
在我的实时网站上,一切都按照我想要的方式运行,但是因为我在我的 header.php
和 footer.php
中使用绝对 URL,当我我在本地工作 (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 文件夹结构
始终使用相对 URL,至少到域。
<link rel="stylesheet" href="/css/style.css" />
如果您真的想使用绝对 URL,请将变量设置为 $homeroot
并按以下方式使用它:
<link rel="stylesheet" href="<?php echo $homeroot; ?>/css/style.css" />
你可以这样声明:
$homeroot = "http://my.example.com";
如果你还想要更好的,可以这样使用:
$homeroot = $_SERVER["HTTP_HOST"];
如果你想让它工作而不编辑你的源文件:
实际上,您不应该使用绝对 URL's,但您仍然可以让它在本地工作,您需要在 hosts
文件中进行小的更改。我不知道你现在在哪个OS,所以你可以这样编辑主机:
Ubuntu:
在您的终端中,输入
sudo gedit /etc/hosts
您将需要输入密码。 在打开的文件中将此行添加到末尾:
127.0.0.1 www.cosworth-europe.co.uk
Windows:
c:\windows\system32\drivers\etc\hosts
在具有管理权限的记事本中打开它并添加以上行。现在本地的工作方式与您的实时网站类似。
[但是如果你想访问实时网站,请确保删除这些行(www.cosworth-europe.co.uk)]
pictorial 表示见此。在这种方法中,您暂时不需要更改文件。但是强烈推荐使用相对的URLs以获得极佳的可移植性!
您应该使用相对网址,建议使用相对网址以实现可移植性。
</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>
你可以做两件事。
首先 -
<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>
你不应该使用绝对 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
相对 URL(在此示例中相对于文档根目录)
<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>