Php 使用标头位置时获取HTTP错误500
因此,我有一个网站托管在我自己的服务器(UpCloud)上,使用Plesk。我也在使用Cloudflare。 基本上,我确实为我的网站为世界不同地区创建了多个目录(en/fr/de/etc…) 我在index.php中有这样一个脚本,可以根据国家自动重定向人员Php 使用标头位置时获取HTTP错误500,php,redirect,vps,plesk,Php,Redirect,Vps,Plesk,因此,我有一个网站托管在我自己的服务器(UpCloud)上,使用Plesk。我也在使用Cloudflare。 基本上,我确实为我的网站为世界不同地区创建了多个目录(en/fr/de/etc…) 我在index.php中有这样一个脚本,可以根据国家自动重定向人员 <?php require 'IP2Location.php'; $loc = new IP2Location('databases/IP-COUNTRY.BIN', IP2Location::FILE_IO); $record
<?php
require 'IP2Location.php';
$loc = new IP2Location('databases/IP-COUNTRY.BIN', IP2Location::FILE_IO);
$record = $loc->lookup($_SERVER['REMOTE_ADDR'], IP2Location::ALL);
if($record == 'US') {
header('HTTP/1.1 301 Moved Permanently');
header('Location: https://mywebsite.com/en');
exit;
}
?>
在调用
header()
之前,确保没有生成任何输出。
检查在调用
header()
之前,确保没有生成任何输出。
检查HTTP 301重定向应设置为
header()函数的第三个参数
HTTP 301重定向应设置为头()函数的第三个参数
终于找到了使用
$country_code = $_SERVER["HTTP_CF_IPCOUNTRY"];
$country_code = $_SERVER["HTTP_CF_IPCOUNTRY"];
最后使用
$country_code = $_SERVER["HTTP_CF_IPCOUNTRY"];
$country_code = $_SERVER["HTTP_CF_IPCOUNTRY"];
测试:在web服务器配置文件中设置设置,而不是在.htaccess中设置。然后重新启动web服务器并重试。测试方法:在web服务器配置文件中设置设置,而不是在.htaccess中设置。然后重新启动web服务器并重试。我已经这样做了,没有“头('HTTP/1.1 301永久移动”);“但它也不起作用。我已经这样做了,没有“头('HTTP/1.1 301永久移动”);”但它也不起作用。仍然得到500…我更新了我的答案并添加了错误报告。运行脚本以查看错误原因仍为500…我已更新我的答案并添加了错误报告。运行脚本查看可能解决识别国家问题的错误原因,但它不能解决您问题中的问题。它也只适用于CloudFlare用户。我不会奇迹般地得到500个错误。所以这对我来说很好。这可能解决了识别一个国家的问题,但它不能解决你问题中的问题。它也只对CloudFlare用户有好处。好吧,我不会奇迹般地得到500个错误。所以这对我来说很好。