Помощь в устранении проблемы с 301 редиректом

22 мая 2012 г., 17:09:22
Просмотры: 18.3K
Голосов: 5

У меня возникли проблемы с сайтом, и я провел краулинг-тест в SEOmoz. Тест обнаружил 301 Permanent Redirect для всех страниц сайта, причем похоже, что они перенаправляются сами на себя.

После завершения проверки сайта я обнаружил огромное количество, похоже, поврежденных данных, добавленных к URL каждой страницы: https://www.getyourphotosoncanvas.com/%7Egetyouv4/%7Egetyouv4/contact-us.html 301 редирект на https://www.getyourphotosoncanvas.com/%7Egetyouv4/contact-us.html

Затем следует длинный список редиректов, каждый из которых добавляет еще одну строку, например: domain/7Egetyouv4/%7Egetyouv4/%7Egetyouv4/../%7Egetyouv4/%/contact-us.html

Эта повторяющаяся часть %7Egetyouv4 продолжается бесконечно... Я сократил ее для поста и убрал доменное имя, чтобы избежать третьей ссылки (ограничение на количество ссылок в посте).

Я понимаю, что это проблема. Техподдержка Bluehost утверждает, что у них нет записей о 301 редиректах, затем предположили, что проблема может быть в файле WP xmlrpc.php? Я новичок в этом, может кто-нибудь объяснить, что все это значит?

Для ясности: я не настраивал редиректы, они мне не нужны, это появилось без моего ведома. Некоторые предполагают взлом?

Самое главное: как это исправить?

0
Все ответы на вопрос 4
0

Я знаю, что это старая тема, но я наткнулся на нее в марте 2017 года, ища именно это решение. Надеюсь, что мое решение поможет кому-то сохранить немного здравого смысла. Я опубликовал его в форуме поддержки X Theme, так как обращался туда за помощью, и решил, что оно заслуживает более широкого распространения.

Странное (для меня) решение заключалось в изменении порядка двух частей моего .htaccess. Вот оно для тех, кто также бьется головой об стол…

Мне нужно, чтобы мой .htaccess выполнял две задачи: перенаправлять посетителей с Domain1.com в корневую директорию WordPress, а пользователей, заходящих на Domain2.com, — в поддиректорию SubDirectoryName. Ниже приведены фрагменты кода. Изначально .htaccess, вызывавший 301 ошибки на всех страницах, кроме главной, содержал редиректную часть ДО части WordPress. В отчаянии я поменял их местами — сначала WordPress, затем редирект — после отключения плагинов, замены старых URL-адресов разработки с помощью плагина Better Search Replace и даже временного отключения .htaccess (не знал, насколько близко был к решению). И сайт заработал нормально, с корректным перенаправлением Domain2.com.

Мораль такова: WordPress — настоящая примадонна, которая требует, чтобы ее код был первым.

Стандартная структура WordPress:

# BEGIN WordPress  
<IfModule mod_rewrite.c>  
RewriteEngine On  
RewriteBase /  
RewriteRule ^index\.php$ – [L]  
RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteRule . /index.php [L]  
</IfModule>  
# END WordPress  

Код редиректа для перенаправления Domain2.com в поддиректорию SubDirectoryName:

# BEGIN redirect to SubdirectoryName  
RewriteEngine on  
RewriteCond %{HTTP_HOST} ^(www.)?domain2.com$  
RewriteCond %{REQUEST_URI} !^/SubDirectoryName/  
RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteRule ^(.*)$ /SubDirectoryName/$1  
RewriteCond %{HTTP_HOST} ^(www.)?domain2.com$  
RewriteRule ^(/)?$ SubDirectoryName/index.php  
RewriteBase /  
RewriteRule ^index.(.*)?$ http://domain2.com/SubDirectoryName/ [r=301]  
# END redirect to SubdirectoryName  

Черт меня побери, если я понимаю весь этот синтаксис редиректов. Сегодня нам уже не нужно разбираться в каждой строчке кода, и экосистема WordPress жива и процветает. Я рад платить за X Theme, поддержку и несколько полезных плагинов, чтобы уменьшить крутизну обучающей кривой. Просто у меня нет времени — а главное, желания — возиться с этим. Я создал свой первый сайт в Блокноте, с парой кнопок и шапкой, сделанной в Photoshop, еще в 1994-95 годах, просто чтобы проверить, смогу ли. Тогда ты ДОЛЖЕН был знать каждую точку и слэш, но их было меньше, и это было больше похоже на завоевание. Можно было, как говорилось в книге, «Выучить HTML за 24 часа».

Надеюсь, это поможет какому-нибудь измученному разработчику выспаться!

17 мар. 2017 г. 04:09:58
1

Перейдите в свою программу передачи файлов (FTP) и найдите файл с названием ".htaccess".

Удалите всё его содержимое и вставьте следующий код:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

После этого зайдите в настройки постоянных ссылок и обновите их до желаемого вида.

23 апр. 2013 г. 05:20:22
Комментарии

Вы можете быть правы, но есть и другие способы перенаправления, кроме .htaccess. Плагин или тема могут делать это с помощью wp_redirect или wp_safe_redirect. Почему вы думаете, что это проблема .htaccess, а не какая-то другая?

s_ha_dum s_ha_dum
23 апр. 2013 г. 06:46:44
0

Это может быть связано с различными проблемами: плохой код в вашей теме, плохой код в плагине, проблемы с конфигурацией .htaccess...

Если вы не знаете, как редактировать .htaccess, вы можете начать со следующих действий:

  • Сменить тему
  • Деактивировать плагины

Если это не решит проблему, она, скорее всего, связана с вашим .htaccess.

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

Одно из действий, которое вы можете выполнить — это проверить ваш сайт с помощью http://sucuri.net/, чтобы убедиться, что нет поврежденных файлов. Если все чисто, проблема становится более сложной для отладки.

24 дек. 2013 г. 06:07:42
2

Удалите файл htaccess и обновите настройки постоянных ссылок, чтобы проверить, решит ли это проблему.

22 мая 2012 г. 17:38:18
Комментарии

Спасибо за ответ. Я новичок в этом! Извините, как мне удалить этот файл, и нигде не упоминается о его замене. Как обновить опцию постоянных ссылок?

user16360 user16360
22 мая 2012 г. 19:54:36

удалите файл .htaccess из корня вашего сайта (там, где находится wp-config). Затем перейдите в НАСТРОЙКИ > ПОСТОЯННЫЕ ССЫЛКИ в админке, и новый файл .htaccess создастся автоматически.

Steven Jones Steven Jones
27 февр. 2014 г. 23:40:11