Php 1个文件中不同域的不同内容

Php 1个文件中不同域的不同内容,php,Php,正在尝试为3个不同的域创建index.php文件。。。所以我需要为不同的域显示不同的内容。但我希望它也能在子文件夹的子文件夹上工作,我是说site1.com/some_content 这是我的代码,但它不能像我想要的那样工作 <?php $host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; if($host == 'site1.com') { echo "A LOT OF HTML JAVAS

正在尝试为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";
    }
?>
有什么想法吗?谢谢

$host=$\u服务器[HTTP\u主机]; 你不需要休息

我必须注意到你很可能做错了什么。
至少创建3个不同的脚本,或者用自己的脚本将每个域映射到不同的目录。代码中出现这样的混乱是一种不好的做法。

如果您使用的是Apache,您可以在.htaccess文件中定义如下内容:

然后,在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/主机,假设它位于本地主机上:

127.0.0.1 development.example.com
127.0.0.1 staging.example.com
127.0.0.1 example.com

我知道拥有一个全局常量不是个好主意,但它比依赖HTTP\U主机要好,因为这很容易改变。

只保留$HOST=$\u SERVER['SERVER\u NAME']。您不需要使用echo$\u SERVER['SERVER\u NAME']和echo$\u SERVER['REQUEST\u URI']进行基本调试。很明显,为什么你的代码不起作用。删除$\u服务器['REQUEST\u URI']partwow!谢谢是的,你说得对,那好多了!谢谢你,安德里斯:
127.0.0.1 development.example.com
127.0.0.1 staging.example.com
127.0.0.1 example.com