В последнее время я сталкиваюсь с этой проблемой, я перенаправил свой домен в один из файлов, размещенных на моем общем хостинге GoDaddy. Однако всякий раз, когда я нажимаю имя домена в браузере, оно приводит к соответствующему файлу (.html) вместе с предшествующими символами барахла.

Примере:

www.domainname.info

Приводит к:

https://www.mydomainname.in/coffee.html/NjSmZ/KiKgZ/

Результат:

Ошибка 404 - Страница Не Найдена.

Не изменили ни одного кода; это внезапное поведение.


ОБНОВЛЕНИЕ (дополнительная информация):

NjSmZ/KiKgZ/ - это ненужные символы в ссылке. Переадресация осуществляется через сам сервер пересылки доменов GoDaddy. Внешнее кодирование не выполняется для пересылки.

www.Aitb.in - это домен, который был перенаправлен на advity.in/adarsha.html.

2
andy ram 4 Сен 2017 в 16:28

3 ответа

Лучший ответ

Хотя я не знаю, как GoDaddy внутренне перенаправляет свой домен, он не выглядит простым DNS CNAME, поскольку ничего не отображается в поиске текущего домена.

Во время игры, глядя на ответ переадресованного домена, я вижу, что он выдает 301 (постоянно перемещенный) HTTP-ответ. Ответ заменяет выбранный домен новым и сохраняет неизменной часть пути URL.

Учитывая, что domain.a - это переадресованный домен, а domain.b - новый домен, это означает:

http://domain.a/ => http://domain.b/
http://domain.a/contact.html => http://domain.b/contact.html
http://domain.a/a/long/path/ => http://domain.b/a/long/path/

Но в вашем случае вы перенаправляете не просто на домен ... domain.b больше похож на domain.b / coffee.html, следуя тому же правилу, это означает:

http://domain.a/ => http://domain.b/coffee.html
http://domain.a/contact.html => http://domain.b/coffee.html/contact.html
http://domain.a/a/long/path/ => http://domain.b/coffee.html/a/long/path/

Итак, мое предложение здесь: либо используйте лучшую посадку, чтобы url_rewrite перенаправленные пути к правильному. Или, если вы не можете попытаться добавить? или # в конце вашего URL. Это чистое предположение, но если в переписывании нет других скрытых правил, это даст что-то вроде следующего, который сделает соответствующий запрос и «скроет» часть корзины.

http://domain.a/ => http://domain.b/coffee.html?
http://domain.a/contact.html => http://domain.b/coffee.html?/contact.html
http://domain.a/a/long/path/ => http://domain.b/coffee.html?/a/long/path/
2
Salketer 4 Сен 2017 в 14:31

Спасибо,

Я решил эту проблему, добавив "?" в конце ссылки на переадресацию домена

Пример: mydomain.com/main/foo.html? или пример: mydomain.com/main/foo.html#

0
andy ram 18 Авг 2018 в 12:29

Эта проблема возникла в нескольких разных доменах, контролируемых GoDaddy. Я несколько раз пытался связаться со службой поддержки GoDaddy, чтобы решить проблему, но безуспешно. В конечном итоге я решил решить эту проблему самостоятельно, потому что GoDaddy, похоже, ничего не понимает в этой проблеме.

Вот мое решение: Добавьте этот код PHP в начало страницы с ошибкой 404. Для WordPress добавьте файл 404.php вашей темы:

<?php 
/* GoDaddy 404 Redirects FIX - by Daniel Chase - https://riseofweb.com */
$currURL = $_SERVER['REQUEST_URI'];
$CheckRedirectError1 = substr($currURL, -6);
$CheckRedirectError2 = substr($currURL, 0, 7);
$CheckRedirectError = false;
if (preg_match("/^[a-zA-Z]{5}\/$/",$CheckRedirectError1)){
    $CheckRedirectError = $CheckRedirectError1;
}else if (preg_match("/^\/[a-zA-Z]{5}\/$/",$CheckRedirectError2)){
    $CheckRedirectError = substr($CheckRedirectError2, 1);
}
if($CheckRedirectError){
    $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
    $redirectTo = str_replace($CheckRedirectError, '', $currURL);
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: " . $protocol . $_SERVER['HTTP_HOST'] . $redirectTo);
    exit();
}
?>

Сценарий проверяет наличие случайных символов и удаляет их, а затем перенаправляет на соответствующую страницу. Возможно, вам придется добавить некоторые исключения или изменить скрипт в соответствии с вашими потребностями.

0
Daniel Chase 1 Авг 2018 в 19:36