Подтвердить что ты не робот

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

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

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

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

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

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

Фиксирование этой проблемы очень просто, если вы использовали постоянные ссылки, отличные от 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

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

Ответ 3

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

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

<Directory "/var/www/html">

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

AllowOverride None

к

AllowOverride All

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

Ответ 4

Если поведение по умолчанию (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

Ответ 5

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

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

enter image description here

Это обновит ваши настройки постоянных ссылок и сбросит правила перезаписи. В большинстве случаев это решение исправляет ошибку 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

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

Ответ 6

В интерфейсе администратора 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.

Ответ 7

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

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

 sudo a2enmod rewrite 

Ответ 8

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

Ответ 9

  • Убедитесь, что каталог на .htaccess верен
  • Проверьте, что поля "siteurl" и "home" являются правильными.

Ответ 10

Если у вас есть 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 после того, как вы закончите.

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

Ответ 11

В большинстве случаев эта проблема устраняется путем простого посещения страницы Настройки → Постоянная ссылка в администраторе 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 просто игнорируется сервером.

Ответ 12

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

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

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

Ответ 14

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

Ответ 15

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

Ответ 16

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

Ответ 17

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

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

Ответ 18

Если ваша установка 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).

Ответ 19

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

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

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

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

Ответ 20

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

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

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

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

Ответ 21

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

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

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

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

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

/breeding.php и /training.php

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