我打算用 PHP 开发一个网站。但不确定我要使用的方法是否是最好的方法。同一站点将有许多附加域。但内容将根据用于访问该网站的域进行过滤。
例如,如果用户来自域 siteusa.com,则内容将根据特定用户过滤显示。如果用户来自 siteuk.com/sitechina.com,内容将被相应地过滤等...
我打算做这样的事情来检测 url 并提供内容
$ref = getenv("HTTP_REFERER");
echo $ref;
或通过
$host = $_SERVER['HTTP_HOST'];
echo $host ;
这是最好的方法吗?我可能会遇到任何瓶颈吗?这应该不会将域检测为关键域。
站点的主域将提供未过滤的内容,每个附加域将根据后端为每个域设置的过滤器对其进行过滤。
有一个类似的问题,但关于 codeigniter here .
最佳答案
HTTP_REFERER 是一个糟糕的选择。当用户直接访问您的网站时,HTTP_REFERER 将为空。
HTTP_HOST/SERVER_NAME 应该可以解决问题,但它可能会因负载平衡软件或代理而失败。
因此,这取决于您的服务器配置。如果您有权访问主机配置(例如 apache 虚拟主机),您可以简单地在每个域的每个 VirtualHost 中指定 ENV 变量。
关于php - 用于关键任务的 php HTTP_HOST 和 HTTP_REFERER 的可靠性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3899717/