通常来说,网站会通过判断内容中的链接是内链还是外链来采取不同的处理方式。在代码中,判断内外链的常见方法是:$host = $_SERVER['SERVER_NAME']
然而,当使用 Nginx 服务器时,可能会出现 $_SERVER['SERVER_NAME']
返回值不为预期的主机域名的情况,这是由于 Nginx 的重定向机制导致的。
Nginx 允许为一个 URL 配置多个重定向域名(通过配置文件中的 server_name),而 $_SERVER['SERVER_NAME']
默认会返回 server_name 列表中的第一个值。如果该值是重定向域名而非目标域名,就会导致匹配错误。
解决办法:调整 Nginx 配置文件中 server_name 的值顺序,将目标域名置于首位,重定向域名移至其后。
下面以 宝塔 +Nginx 为例:
