После миграции сервера работает только главная страница

13 апр. 2011 г., 21:32:58
Просмотры: 122K
Голосов: 42

Недавно я перенес свой WordPress сайт на хостинг VPS.net. Я перенес все файлы и импортировал базу данных. Все казалось в порядке, пока я не нажал на ссылку и не заметил, что все мои страницы возвращают ошибку 404, кроме главной страницы.

URL сайта: http://inksquared.com

2
Комментарии

У меня сегодня была такая же проблема! Перенос сайта WordPress – главная страница работает, все остальные страницы/ссылки не работают

user187724 user187724
9 янв. 2016 г. 21:22:26

У меня была такая же проблема, и она решилась изменением файла .htaccess согласно стандартным значениям отсюда https://wordpress.org/support/article/htaccess/

Muzaffar Mahmood Muzaffar Mahmood
23 июн. 2020 г. 11:38:52
Все ответы на вопрос 6
8
54

Попробуйте сбросить правила mod_rewrite:

Консоль -> Настройки -> Постоянные ссылки

Сохраните настройки (не нужно вносить изменения)

13 апр. 2011 г. 21:36:23
Комментарии

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

John P Bloch John P Bloch
13 апр. 2011 г. 21:49:19

Каждый день узнаю что-то новое... :)

Chip Bennett Chip Bennett
13 апр. 2011 г. 21:51:20

@john ты уверен, что просто загрузка страницы записывает в .htaccess, если это необходимо? У меня было впечатление, что обновляются только rewrite_rules в базе данных.

Ashfame Ashfame
13 апр. 2011 г. 22:00:08

wp-admin/options-permalinks.php вызывает flush_rewrite_rules(), обёртку для WP_Rewrite::flush_rules(), которая, если $hard равен true (что и происходит при вызове на этой странице) и функция save_mod_rewrite_rules существует (определена в wp-admin/includes/misc.php, подключается на всех админ-страницах), вызывает save_mod_rewrite_rules(). Определение этой функции можно посмотреть здесь: http://core.trac.wordpress.org/browser/trunk/wp-admin/includes/misc.php#L114

John P Bloch John P Bloch
13 апр. 2011 г. 23:32:09

Функция, которая фактически записывает правила перезаписи в .htaccess, называется insert_with_markers (используется в save_mod_rewrite_rules() выше), её определение здесь: http://core.trac.wordpress.org/browser/trunk/wp-admin/includes/misc.php#L53

John P Bloch John P Bloch
13 апр. 2011 г. 23:33:42

Это решило проблему в моём случае.

Ed DeGagne Ed DeGagne
17 апр. 2017 г. 04:11:13

Нет необходимости открывать cPanel. Я сначала пробовал принятый ответ, но у меня shared hosting, поэтому не смог найти httpd.conf, а live chat все еще грузится. И тогда я нашел этот ответ, который оказался самым простым в использовании решением. :D

TheOnlyAnil TheOnlyAnil
4 авг. 2017 г. 11:24:23

это решило мою проблему (такую же, как у автора вопроса)

arvic.rivera arvic.rivera
6 дек. 2018 г. 22:12:27
Показать остальные 3 комментариев
6
54

Я предполагаю, что у вас работает http://вашсайт, но не работает http://вашсайт/что-либо

У меня была похожая проблема, и она решилась, когда я изменил

в httpd.conf с

AllowOverride None

на

AllowOverride All

Это позволяет файлу .htaccess вступить в силу.

18 апр. 2012 г. 18:20:28
Комментарии

Это сработало у меня. Большинство людей забывают об этом.

qasimzee qasimzee
10 дек. 2014 г. 20:20:47

Это тоже сработало у меня, только пришлось изменить это в секции apache2.conf для расположения моих серверных файлов, в моем случае это /var/www

sponrad sponrad
17 нояб. 2015 г. 08:04:10

Это было частью решения для меня. Я добавил AllowOverride All в конфигурацию сайта, но также добавил Options FollowSymLinks. После этого я смог использовать пользовательские постоянные ссылки, что также создало соответствующий корневой файл .htaccess. После этого всё заработало.

boot13 boot13
13 сент. 2016 г. 02:46:46

И не забудьте перезапустить apache! "sudo service apache2 restart"

gradosevic gradosevic
11 янв. 2017 г. 09:51:03

Это сработало. Убедитесь, что вы изменили параметр AllowOverride в соответствующих местах в конфигурационном файле.

Najeeb Najeeb
19 дек. 2017 г. 15:54:06

включение в httpd.conf LoadModule rewrite_module libexec/apache2/mod_rewrite.so помогло на mac. удалите #, чтобы активировать

stefanosn stefanosn
6 июл. 2019 г. 18:54:01
Показать остальные 1 комментариев
5
31

Я столкнулся с такой же проблемой.

Вот что я сделал для её решения на сервере Ubuntu:

  1. В файле /etc/apache2/apache2.conf изменил AllowOverride None для /var/www/ на AllowOverride All

  2. Выполнил следующую команду для включения mod_rewrite для .htaccess

sudo a2enmod rewrite

  1. Перезапустил сервер Apache:

sudo service apache2 restart

Проблема решена!!!

22 нояб. 2015 г. 04:40:28
Комментарии

Спасибо, ни одно из других предложений не помогло, но команда a2enmod rewrite сработала.

Martin McCallion Martin McCallion
23 июн. 2017 г. 21:17:06

+1 За упоминание модуля rewrite. Не знал, что он не включен по умолчанию.

Native Coder Native Coder
13 дек. 2017 г. 05:35:47

Определенно понадобилась команда sudo a2enmod rewrite, чтобы это заработало, спасибо!

Huskie69 Huskie69
5 окт. 2018 г. 12:31:02

Спасибо! Команда a2enmod rewrite сработала для меня.

Lucas Basquerotto Lucas Basquerotto
17 окт. 2018 г. 18:46:45

Спасибо, Авинаш! То же самое, что и у Лукаса, команда a2enmod rewrite сработала для меня

Jero Dungog Jero Dungog
25 нояб. 2019 г. 23:52:17
0

В Ubuntu 14.04 файл 000-default.conf можно найти по пути /etc/apache2/sites-available

Или, если у вас несколько сайтов WordPress, настройки виртуального хоста будут находиться в соответствующем файле конфигурации. Например, domain.conf

Вам необходимо заменить AllowOverride None на AllowOverride All

Надеюсь, это поможет.

9 нояб. 2015 г. 17:51:54
0

Причина, скорее всего, в том, что файл .htaccess не был скопирован. В Mac OS X и некоторых FTP-приложениях этот файл считается "скрытым", так как его имя начинается с точки .. Если вы перейдете в раздел Настройки -> Постоянные ссылки в админке WordPress, вы можете заново сгенерировать этот файл. Однако лучше найти предыдущую версию этого файла и использовать её (особенно если вы используете плагин кеширования).

13 апр. 2011 г. 21:46:27
2

Вы получаете 404 ошибку веб-сервера или WordPress? Если это 404 ошибка веб-сервера, скорее всего, вы не скопировали корневой файл htaccess из старой установки, или у него неправильные разрешения для выполнения.

Первое, что я бы проверил при устранении неполадок - это наличие файла htaccess в корневой директории. И если он есть, посмотреть его содержимое.

13 апр. 2011 г. 21:36:15
Комментарии

Проверил файл .htaccess. Он содержит тот же код, который отображался в разделе постоянных ссылок админки WordPress. Я изменил права на запись, но видимых изменений не наблюдается.

mikeyrocks mikeyrocks
13 апр. 2011 г. 22:17:22

@mikeyrocks Хм... другая возможная причина - на вашем новом сервере не включен mod_rewrite. Важно: вы получаете серверную 404 (простая белая страница с надписью "not found") или WordPress 404 (оформленную в стиле вашего сайта)?

MathSmath MathSmath
13 апр. 2011 г. 23:11:24