尝试为3个不同的域创建一个index.php文件...所以我需要为不同的域显示不同的内容。但是希望它也适用于子文件夹的“子文件夹”,我的意思是site1.com/some_content
这是我的代码,但它无法正常工作。
<?php
$host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if($host == 'site1.com') {
echo "A LOT OF HTML JAVASCRIPT AND CSS";
}
if($host == 'site2.com') {
echo "Same here but different content";
}
if($host == 'site3.com') {
echo "Cats and flowers";
}
?>
任何想法?谢谢!
答案 0 :(得分:0)
$host = $_SERVER["HTTP_HOST"];
你不需要休息。
我必须注意到你很可能做错了什么。 至少创建3个不同的脚本,或者使用它自己的脚本将每个域映射到不同的目录。在代码中乱七八糟是一种不好的做法。
答案 1 :(得分:0)
如果您使用的是Apache,可以在.htaccess
文件中定义类似的内容:
SetEnvIfNoCase Host "^development.example.com$" APPLICATION_ENV=development
SetEnvIfNoCase Host "^staging.example.com$" APPLICATION_ENV=staging
SetEnvIfNoCase Host "^example.com$" APPLICATION_ENV=production
然后,在index.php文件中(或每个页面加载时包含的任何内容)添加:
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
之后,您可以在代码中的任何位置读取APPLICATION_ENV
的值,以确定您目前所处的环境:
switch (APPLICATION_ENV) {
case 'development':
// do stuff
break;
case 'staging':
// do stuff
break;
case 'production':
default:
// do stuff
break;
}
您可以将多个主机名指向/ etc / hosts(或C:/ Windows / System32 / drivers / etc / hosts)文件中的相同IP /主机(假设它在localhost上):< / p>
127.0.0.1 development.example.com
127.0.0.1 staging.example.com
127.0.0.1 example.com
我知道有一个全局常量不是主意,但它比依赖HTTP_HOST更好,因为它可以很容易地改变。