WordPress предоставляет мне страницу 404, не найденную для всех страниц, кроме главной страницы

89

Внезапно я перехожу на сайт WordPress, и все страницы дают мне 404 страницы, которые не найдены. Я предполагаю, что проблема заключается в структуре permalink, которую я мог бы поклясться, что не коснулся. Постоянная ссылка установлена ​​на "месяц и имя".

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

Любые предложения будут полезны

и, конечно, я вижу скрытые файлы.

  • 0
    Предлагаю вам спросить об этом на wordpress.stackexchange.com .
Теги:

21 ответ

83
Лучший ответ

.htaccess - скрытый файл, поэтому вы должны установить все файлы как видимые на вашем ftp.

Я предлагаю вам вернуть структуру permalink по умолчанию (? p = ID), чтобы вы гарантировали, что проблема .htaccess.

После этого вы можете просто снова установить структуру "месяц и имя" и посмотреть, не работает ли она.

PS: Вы обновили до 3.1? В этом случае я видел некоторых людей с проблемами с плагинами.

  • 1
    да, я показал скрытые файлы. Я переключился назад и вперед от по умолчанию до perma, и он работает по умолчанию. Кроме того, WordPress обновляет себя или что-то? Я замечаю, что при входе в систему у меня появляется новая панель задач администратора на моем веб-сайте, которой у меня не было раньше. Я не знаю, как он туда попал.
  • 0
    кто-то по ошибке обновил до 3.1, поэтому он конфликтовал с плагином
Показать ещё 6 комментариев
43

Фиксирование этой проблемы очень просто, если вы использовали постоянные ссылки, отличные от default, такие как Day and name, Month and name, Numeric, Post name или Custom Structure, вам нужно только

Войдите в свою область администратора: Settings > Permalinks, которая должна быть: http://yoursite.com/wp-admin/options-permalink.php

Выберите default параметр постоянной привязки, затем сохраните изменения

Затем вы можете вернуть его снова к своему другому предыдущему выбору по умолчанию или сохранить его как default как yo wish

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

  • 1
    Это несколько помогло мне, у меня были некоторые ошибки в базе данных, и после этого все мои страницы были 404. Переключение параметра постоянная ссылка на другой параметр (например, обычный), а затем обратно на параметр по умолчанию исправил все мои ссылки!
  • 0
    Рад это слышать :)
Показать ещё 4 комментария
37

В основном файл .htaccess должен существовать, и httpd.conf должен быть правильным.

В моем случае я изменил файл /etc/httpd/conf/httpd.conf в разделе:

<Directory "/var/www/html">

Линия изменена:

AllowOverride None

к

AllowOverride All

И перезапустите веб-сервер.

  • 1
    спасибо, что помогло. В моем случае настройка AllowOverride отсутствовала.
  • 1
    Это исправило это и для меня. Я использую бродячую скотчбок за то, что он стоит.
Показать ещё 2 комментария
19

Если поведение по умолчанию (example.com/?p=42) работает, вам следует:

  • Измените предпочитаемый стиль постоянной ссылки: Admin: Settings > Permalinks и нажмите Сохранить. Иногда это решает проблему. Если это не так:
  • Убедитесь, что файл /path/to/wordpress/.htaccess был изменен и теперь содержит строку RewriteEngine On. Если это не включает строку, это проблема разрешений Wordpress.
  • Убедитесь, что загружен модуль rewrite: создайте файл PHP с

    <?php
      phpinfo()
    ?>
    

    в нем откройте его в браузере и найдите mod_rewrite. Это должно быть в разделе "Загруженные модули". Если это не так, включите его - посмотрите подробности в файле index.html вашего apache по умолчанию - в Ubuntu вы делаете это с помощью помощника a2enmod.

  • Убедитесь, что сервер apache просматривает файл .htaccess. откройте httpd.conf - или его альтернативу Ubuntu, /etc/apache2/apache2.conf. В нем должно быть что-то вроде

    <Directory /path/to/wordpress>
      Options Indexes FollowSymLinks
      AllowOverride All
      Require all granted
    </Directory>
    
  • После внесения этих изменений не забудьте перезапустить ваш сервер Apache. sudo service apache2 restart

  • 1
    Очень полезно. Благодарю. Это должен быть принятый ответ.
  • 0
    Идеальное решение. Большое спасибо
13

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

Go to Settings " Permalinks, and simply click on Save Changes button.

Изображение 3422

Это обновит ваши настройки постоянных ссылок и сбросит правила перезаписи. В большинстве случаев это решение исправляет ошибку WordPress posts 404. Однако, если он не работает для вас, вам, вероятно, необходимо обновить файл .htaccess вручную.

Войдите на свой сервер, используя FTP, и измените файл .htaccess, который находится в том же месте, где расположены папки, такие как /wp-content/и /wp-includes/, просто введите приведенные ниже коды в ваш .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

Надеюсь, что это решит проблему.

  • 1
    Я спрашиваю, как это произошло, но это решило мою проблему ... спасибо
  • 1
    Обычно это происходит, если ваш файл .htaccess был удален или что-то пошло не так с правилами перезаписи @ Kurohige
9

В интерфейсе администратора WordPress выполните следующие действия:

  • Перейти к настройкам администратора

  • Нажмите на ссылку по-умолчанию и выберите имя сообщения в переключателе.

  • Прокрутите вниз, и вы увидите здесь код .htaccess.

    <IfModule mod_rewrite.c>
        RewriteRule ^index\.php$ - [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule . /wordpress/index.php [L]
    </IfModule> 
    
  • Скопируйте код и вставьте его в файл .htaccess.
  • 1
    Где я могу найти это? Там нет ничего подобного в постоянные ссылки.
  • 0
    @ Boris_yo Насколько я знаю, правила будут отображаться только в том случае, если ваш htaccess файл not для записи ... если это WordPress, то просто напишу его сам ...
Показать ещё 1 комментарий
7

Если все это не работает, ваш .htaccess верен, и трюк с постоянными ссылками не сработал, возможно, вы не включили ваш мод apache2 rewite.

Я запустил это, и моя проблема была решена:

 sudo a2enmod rewrite 
  • 0
    Это просто сработало! Большое спасибо!
  • 0
    Это сработало для меня. спасибо!
6

Эта ошибка вызвана отключением мода перезаписи в документе apache httpd.conf, просто раскомментируйте ее и наслаждайтесь seo дружественными постоянными ссылками

3
  • Убедитесь, что каталог на .htaccess верен
  • Проверьте, что поля "siteurl" и "home" являются правильными.
  • 1
    Для меня дом был проблемой. Я исправляю это и все возвращаюсь к работе. Обританкю Хосе Карлос.
2

У нас была та же проблема, и мы решили ее, проверив error.log нашего виртуального хоста. Мы нашли следующее сообщение:

AH00670: Опции FollowSymLinks и SymLinksIfOwnerMatch оба отключены, поэтому директива RewriteRule также запрещена из-за ее аналогичной способности обходить ограничения каталога: /srv/www/htdocs/wp-intranet/

Решением было установить Options All и AllowOverride All в нашей конфигурации виртуального хоста.

2

В большинстве случаев эта проблема устраняется путем простого посещения страницы Настройки → Постоянная ссылка в администраторе WordPress и нажмите "Сохранить" (как уже упоминалось в нескольких других ответах). Когда эта страница доступна, WordPress перезаписывает директивы в файле .htaccess, который магически исправляет проблему. Эта проблема часто возникает после перемещения сайта (сайт ломается, потому что .htaccess остается позади или настройки необходимо обновить).

Если WordPress не имеет прав на запись файла .htaccess, в верхней части страницы появится надпись и дальнейшие инструкции внизу, когда настройки сохранены. В этом случае вам нужно отредактировать файл .htaccess самостоятельно или, лучше, исправить разрешения для этого файла. Файл находится в корневом каталоге установки WordPress. cd в каталог и sudo chmod 644 .htaccess. Возможно, вы также захотите проверить, принадлежит ли файл правой группе, и изменить его с помощью chown. Спросите своего хостинг-провайдера, если вы не знаете, как это сделать.

Если вы находитесь на общем хостинге, вероятно, все, что вы можете сделать. Если у вас все еще есть проблема, вы можете поговорить с вами о поддержке хостинг-провайдера. В противном случае убедитесь, что использование файлов .htaccess включено на сервере, как уже указывал @georgeos. Обратите внимание, что httpd.conf не всегда используется (Ubuntu указывает, что он устарел, но официальные документы Apache все еще говорят, что это часто главный файл конфигурации). /etc/httpd/conf/httpd.conf и /etc/apache2/apache2.conf кажутся наиболее распространенными местами для этого файла. Найдите блок для общей папки, обычно <Directory /var/www/> и убедитесь, что директива AllowOverride установлена ​​на All. Если он установлен в None, ваш файл .htaccess просто игнорируется сервером.

2

Если у вас есть FTP-доступ к вашей учетной записи:

Сначала войдите в свой wp-admin и перейдите в "Настройки" > "Постоянная ссылка"

Вы должны увидеть что-то внизу, в котором говорится:

"Если ваш файл .htaccess доступен для записи, мы можем сделать это автоматически, но это не так, это правила mod_rewrite, которые вы должны иметь в вашем файле .htaccess. Нажмите в поле и нажмите CTRL + a, чтобы выбрать все."

Если это так, выполните следующие действия:

  • Перейдите в настройки для своего FTP-клиента и убедитесь, что отображаются скрытые файлы (зависит от вашего FTP-клиента). Если вы этого не сделаете, вы не сможете найти свой файл htaccess

  • Перейдите в папку, в которой находятся каталоги wp-admin, wp-content, wp-includes. Проверьте файл .htaccess. Если он существует, перейдите к шагу 4

  • Если этого не существует, создайте новый пустой файл в вашей программе FTP под названием .htaccess

  • Измените CHMOD для вашего файла .htaccess на 666 (ваше предпочтение в том, как вы хотите это сделать)

  • Вернитесь на страницу Permalinks и отредактируйте нужную структуру ссылок. Проблема должна быть решена!

  • Обязательно измените chmod файла htaccess на 644 после того, как вы закончите.

У меня была такая же проблема, и, похоже, она мгновенно исправила это! Удачи!

  • 0
    "mod_rewrite" это была проблема, я забыл включить его! Спасибо :)
1

Я установил mod_rewrite, чтобы исправить проблему. Ниже ссылка содержит руководство по установке: - http://www.iasptk.com/enable-apache-mod_rewrite-ubuntu-14-04-lts/

0

Для пользователей nginx

Используйте следующую информацию в файле conf для вашего сайта (обычно /etc/nginx/sites-available/example.com)

location/{ try_files $uri $uri//index.php?q=$uri&$args; }

Это передает все постоянные запросы к index.php со строкой URI и предоставленными аргументами. Выполните systemctl reload nginx чтобы увидеть изменения, и ваши ссылки не на домашней странице должны загрузиться.

0

Я просто изменил постоянную ссылку на "месяц и день" всех сообщений, перейдя к настройке> постоянная ссылка.

Теперь все посты открыты и работают нормально.

Я снова переименовал все посты в их фактическую постоянную ссылку. Его снова работает нормально.

Этот метод работал для меня :-)

0

Если ваша установка WordPress находится в подпапке (например, https://www.example.com/subfolder), измените эту строку в WordPress .htaccess

RewriteRule . /index.php [L]

to

RewriteRule . /subfolder/index.php [L]

Таким образом, вы сообщаете серверу о поиске WordPress index.php в папке WordPress (например, https://www.example.com/subfolder) а не в общей папке (например, https://www.example.com).

0

Случай 1: - Давайте подумаем, если вы переносите сайт с одного хостинга на другой хостинг, если видите эту проблему.

Решение: - Просто перейдите на старый файл, скопируйте файл .htaccess в старый сервер, а затем запустите его на новом сервере .htaccess. 99% это я буду работать.

0

Просто выберите Настройки- > Постоянная ссылка в панели управления, а затем Сохранить изменения в последнем.\

0

У вас может быть .htaccess запрещен в настройках веб-хостинга. В этом случае будет работать установка констант по умолчанию.

0

У меня такая же проблема, поэтому я удаляю Apache и делаю это снова, и проблема решена.

-2

У меня была эта проблема не так давно. У меня была reset моя постоянная ссылка на значение по умолчанию или просто ее сохраненная, обновленные темы/ядро ​​до (4.7.4)/плагины, дезактивированные все плагины, переключились на тему по умолчанию, оптимизированную базу данных,.htaccess уже по умолчанию, проверял права доступа к файлам, mod_rewrite включен.

Пока ничего не работает, что работает, сообщения, новая страница, страница/контакт EXCEPT для старых страниц.

В основном страницы/URL-адреса, которые не работают:

/breeding
/training
/training/*
/breeding/*

Ultimate, я нашел эти файлы в корневой папке:

/breeding.php и /training.php

Я переименовал оба файла и страницы, над которыми работали.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню