3

我正在尝试使用 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 语句,但我认为它与 PHP 中优先级更高的第一个 IF 语句冲突)。感谢任何帮助家伙,这让我很难过,但会很有用。网上没有类似的问题只以这种方式显示代码。

(背景:我正在实施一个仅在 mywebsite.com 的入口点上显示的“国家选择器”。我已经在每个国家/地区设置了它们自己的子目录,因此如果客户没有为他们显示国家/地区选择器的目的直接转到这些地址之一)。

4

1 回答 1

0

您可能正在使用 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']只会检查域名,而不是请求的路径。正如你所描述的,但似乎不是你想要的。

于 2012-11-28T05:35:54.887 回答