Поиск источника 301 редиректа (через .htaccess или wp_redirect ()

Один из моих стажеров применил 301 редирект на одной из страниц сайта (domain.com/nice-page) на другую страницу (domain.com/pretty-page), и я ' хочу удалить это перенаправление.

Проблема в том, что он не уверен, откуда было применено перенаправление.

Он говорит, что сделал это через плагин, но я тщательно проверил плагины перенаправления на своем сайте и не нашел никаких правил перенаправления.

Я также проверил .htaccess и тоже не смог найти никаких правил.

Не могли бы вы, ребята, дайте мне знать, есть ли способ найти источник перенаправления (какая-то магия, например, элемент inspect для проблем с html и css)?

Я очень признателен за любую помощь в этом отношении.

0
задан 19 July 2018 в 14:00
1 ответ

Заголовок постоянного перенаправления ( код состояния HTTP 301 ) может происходить примерно из 3 мест на веб-сервере Apache:

  • из основного Apache httpd. conf файл конфигурации или одно из включений, загруженных файлом httpd.conf.
  • Если установлено AllowOverride, его можно установить из любого файла .htaccess в пути URL-адреса, который перенаправляется .
  • Из «кода» (скрипты PHP, CGI и т. Д.), Который запускается веб-сервером .

И не упускайте из виду альтернативный №4

  • «код» (Javescript, JQuery и т. Д.), Который запускается веб-браузером .

Заголовки Apache Redirect могут быть установлены с помощью директив mod_alias с помощью Redirect , RedirectMatch или RedirectPermanent либо с помощью mod_rewrite Флаг R .

Как "код" это делает, зависит и будет PITA для определения, но при выполнении немого веб-запроса (например, curl -v http://example.com/nice-page ) покажет, действительно ли HTTP / 1.1 301 перемещен навсегда \ n Местоположение: http: // ... ответ запускается веб-сервером в виде заголовка, или, если это не так, вам следует просмотреть скрипты браузера.

Также обратите внимание: HTTP 301 Redirect - это «Перемещено навсегда» и как таковые будут кэшироваться как веб-браузерами, так и CDN-серверами и прокси-серверами, и после того, как вы удалили директиву из конфигурации сервера, вы все равно можете ее наблюдать.Возможно, вам потребуется выполнить тестирование в новом окне анонимного браузера и / или очистить кеши.


Из вашего комментария с URL:

curl -v http://photographyconcentrate.com/camera-buying-guide
*   Trying 104.27.188.166...
* TCP_NODELAY set
* Connected to photographyconcentrate.com (104.27.188.166) port 80 (#0)
> GET /camera-buying-guide HTTP/1.1
> Host: photographyconcentrate.com
> User-Agent: curl/7.54.0
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
< Date: Fri, 20 Jul 2018 11:26:41 GMT
< Transfer-Encoding: chunked
< Connection: keep-alive
< Cache-Control: max-age=3600
< Expires: Fri, 20 Jul 2018 12:26:41 GMT
< Location: https://photographyconcentrate.com/camera-buying-guide
< Server: cloudflare
< CF-RAY: 43d5130783252b40-AMS

Это показывает, что ваш домен использует CloudFlare, CDN и действительно реализован с 301 Перемещено навсегда заголовок перенаправления, а не через java-скрипт. Это добавляет сложности, поскольку перенаправление также может быть установлено на CF, и оно даже не должно присутствовать на вашем веб-сервере.

Вы можете подтвердить, отправлено ли перенаправление с вашего веб-сервера или только CloudFlare, пропустив CloudFlare и запустив:

 curl -v -H "Host: photographyconcentrate.com" http://<real-IP-address-of-your-webserver>/
2
ответ дан 4 December 2019 в 13:25

Теги

Похожие вопросы