У меня есть два сайта WordPress, использующие функцию нескольких сайтов, URL-адреса указаны ниже:
- A: sample.com
- B: sample.com/en
Я пытался написать код в PHP, следуя этим условиям, но когда я получаю доступ к правилу A: sample.com, браузер (chrome) показывает ошибку.
Не могли бы вы рассказать мне, как мне решить эту проблему?
Заранее спасибо.
условия доступа
- Первый доступ только к [A: sample. com]
- Пользователи, для которых в качестве языка браузера задан японский доступ к [A: sample.com]
- Все пользователи, для которых в качестве языка браузера не задан японский доступ [B: sample.com/ ru]
Сообщения об ошибках в браузере (chrome)
This page isn’t working
sample.com redirected you too many times.
Try clearing your cookies.
ERR_TOO_MANY_REDIRECTS
Код для добавления в функциях. php
<?php
$uri = $_SERVER['REQUEST_URI'];
$BASE_LANG = 'en';
if (!preg_match('/^[!-~][a-zA-Z]{2}[!-~]/', $uri)) {
$languages = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
$lang = $BASE_LANG;
if (isset($languages)) {
$browser_lamguage = $languages[0];
$base_languages = array('ja', 'en');
foreach ($base_languages as $base_language) {
if (preg_match("/^$base_language/i", $browser_lamguage)) {
$lang = $base_language;
break;
}
}
}
$url = get_site_url()."/$lang/";
if ($lang == 'ja') {
$url = get_site_url();
}
header("Location: $url");
exit();
}
?>
Среда разработки
- CentOS (7 x86_64)
- Apache (2.4.6 CentOS)
- PHP (7.1.33)
- wordpress (5.2.5)