我正在尝试使用 PHP 执行代码,但前提是网站入口点的 URL 完全:http://mywebsite.com .因此,仅在该 URL 上特别明确,之后没有任何内容。 在尝试多个 PHP IF ELSE 语句尝试获得它后,我感到很困惑,我觉得非常接近。
<?php $host = $_SERVER['HTTP_HOST']; if($host == "www.mywebsite.com" or $host == "mywebsite.com") { ?> MYHTML1SHOWS <?php } else { ?> MYHTML2SHOWS <?php } ?>
当大多数访问者访问 mywebsite.com 时,这让我成功出现在域中,但继续处理所有后续子文件/页面/目录。这是 100% 不想要的。
所以我想到了像 ELSEIF 这样的解决方法来显示 MYHTML2 以定位我的所有页面,因为它们很容易地都在国家/地区分配的目录中:/au/、/asia/、/nz/、/uk/等。
<?php } elseif (stripos($_SERVER['REQUEST_URI'],'/au/') !== false) { ?> HTML3 <?php } ?>
这没有用,但值得一试(在我以前做过的网站中,它可以使用自己的 IF 语句,但我认为它与第一个 IF 语句冲突,后者在 PHP 中具有更高的优先级)。感谢任何帮助的人,这让我很困惑,但会很有用。网上没有类似的问题,只能这样显示代码。
(背景:我正在实现仅在 mywebsite.com 的入口点显示的“国家/地区选择器”。我已经在各自的子目录中设置了每个国家/地区,因此没有显示国家/地区的目的如果客户直接前往这些地址之一,则为他们选择器)。
最佳答案
您可能正在使用 Apache 的 mod_rewrite 做一些魔术……如果没有,那可能是开始寻找的好地方。听起来您要解决的问题最好通过 Apache 完成,在您的 httpd.conf 中或(如果启用)通过 .htaccess。
http://httpd.apache.org/docs/current/mod/mod_rewrite.html
否则,$_SERVER
变量 $_SERVER['PHP_SELF']
和 $_SERVER['REQUEST_URI']
可能用于你。
http://www.php.net/manual/en/reserved.variables.server.php
$_SERVER['HTTP_HOST']
只会检查域名,不会检查请求的路径。这正如您所描述的,但似乎不是您想要的。
关于PHP : IF Domain equals EXACTLY [x] then [actions] but not subdirectories/files,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13598391/