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

Запрошенный URL-адрес не найден на этом сервере

Домашняя страница моего сайта wordpress выглядит правильно, но если вы перейдете на любую из других страниц, я получаю следующее сообщение об ошибке:

Not Found

The requested URL /about was not found on this server.

Apache/2 Server at www.wildlionmedia.co.uk Port 80

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

http://www.wildlionmedia.co.uk/

Любые идеи, как я могу решить проблему?

# Switch rewrite engine off in case this was installed under HostPay.
RewriteEngine On

SetEnv DEFAULT_PHP_VERSION 53

DirectoryIndex index.cgi index.php

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

# END WordPress
4b9b3361

Ответ 1

Это не типичный блок переписывания 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

См. Http://codex.wordpress.org/Using_Permalinks#Where.27s_my_.htaccess_file.3F.

Где мой файл .htaccess? Файлы WordPress index.php и .htaccess должны находиться вместе в каталоге, указанном настройкой адреса сайта (URL) на странице общих параметров. Поскольку имя файла начинается с точки, файл может быть не виден через клиент FTP, если вы не измените настройки инструмента FTP, чтобы показать все файлы, включая скрытые файлы. Некоторые хосты (например, Godaddy) могут не отображать или не разрешать вам редактировать .htaccess, если вы устанавливаете WordPress через установку Godaddy Hosting Connection.

Создание и редактирование (.htaccess) Если у вас еще нет файла .htaccess, создайте его. Если у вас есть доступ к серверу с помощью shell или ssh, файл будет создан простой сенсорной командой .htaccess. Если вы используете FTP для передачи файлов, создайте файл на локальном компьютере, назовите его 1.htaccess, загрузите его в корневой каталог WordPress и переименуйте в .htaccess.

Вы можете редактировать файл .htaccess с помощью FTP, оболочки или (возможно) панели управления хостом.

Самый простой и быстрый способ сделать это - сбросить постоянные ссылки в Dashboard >> Настройки >> Постоянные ссылки и убедиться, что .htaccess доступен для записи, чтобы WordPress мог сам писать правила.

И еще: знаете ли вы, что вызываете index.cgi как документ по умолчанию, а не index.php? Это неправильно. Удалить index.cgi. Или попробуйте также удалить всю строку, потому что определение документа по умолчанию на вашем сервере может не потребоваться.

Ответ 2

Если все вышеперечисленное пункт не работает. Тогда попробуйте это. Я попробовал это. Это работает для меня.

  1. Перейдите /etc/httpd/conf/httpd.conf.
  2. Измените AllowOverride None на AllowOverride All.
  3. Перезапустите сервер Apache.

ОБНОВЛЕНИЕ 2017

Для новых версий apache файл называется apache2.conf

Таким образом, чтобы получить доступ к файлу, введите sudo nano/etc/apache2/apache2.conf и измените соответствующую строку внутри блока <Directory/var/www >

Ответ 3

У меня это сработало так:

Перейдите в Панель управления Wordpress> "Настройки"> "Постоянные ссылки"> "Общие настройки", установите переключатель в положение "Пользовательская структура" и вставьте в текстовое поле:

/index.php/%year%/%monthnum%/%day%/%postname%/

и нажмите кнопку Сохранить.

Я получил это решение по этой ссылке

Ответ 4

Я удалил предыдущий файл .htaccess и создал новый, нажав кнопку "Сохранить" в "Настройки" > "Перманентные"

и теперь страницы начали нормально работать...

Ответ 5

На веб-сайте Wordpress есть надежный ответ:

Где мой файл .htaccess?

Файлы WordPress index.php и .htaccess должны находиться вместе в каталоге, указанном настройкой адреса сайта (URL) на странице общих параметров. Поскольку имя файла начинается с точки, файл может быть не виден через клиент FTP, если вы не измените настройки инструмента FTP, чтобы показать все файлы, включая скрытые файлы. Некоторые хосты (например, Godaddy) могут не отображать или не разрешать вам редактировать .htaccess, если вы устанавливаете WordPress через установку Godaddy Hosting Connection.

Создание и редактирование (.htaccess)

Если у вас еще нет файла .htaccess, создайте его. Если у вас есть доступ к серверу с помощью shell или ssh, файл будет создан простой сенсорной командой .htaccess. Если вы используете FTP для передачи файлов, создайте файл на локальном компьютере, назовите его 1.htaccess, загрузите его в корневой каталог WordPress и переименуйте в .htaccess.

Вы можете редактировать файл .htaccess с помощью FTP, оболочки или (возможно) панели управления хостом.

Следующий код перезаписи постоянных ссылок должен быть включен в ваш файл .htaccess (начиная с WordPress 3.0):

# 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

Выбранный ответ не решил эту проблему для меня. Так что для тех, кто все еще ломает голову над этим, я нашел другое решение!

В моих настройках Apache httpd.conf (вы можете найти файл conf, запустив apachectl -V в вашей консоли), включил следующий модуль:

LoadModule rewrite_module modules/mod_rewrite.so

И теперь сайт работает как положено.

Ответ 7

Это сработало для меня вот так:

Перейдите в панель инструментов Wordpress Admin > "Настройки" > "Перманентные ссылки" > "Общие настройки", установите переключатель в "Пользовательская структура" и вставьте в текстовое поле:

/index.php/%year%/%monthnum%/%day%/%postname%/

и нажмите кнопку "Сохранить".

Ответ 8

Hie,

Хотя и поздно. Если кто-то страдает от подобных проблем, вот что вы можете сделать, чтобы разрешить постоянные ссылки, изменяя ваш файл виртуального хоста или везде, где вы размещаете свои сайты WP.

Таким образом, в основном все работает нормально - вы устанавливаете постоянные ссылки для публикации, и вдруг URL исчезает. Вы посещали множество дискуссионных форумов (например, я), пытались много модифицировать и получали ошибки "Permission to server 403" или URL not found. Все, что вам нужно сделать, это перейти к файлу хоста, например, 000-default.conf, если вы используете виртуальный хост по умолчанию или ваш файл конфигурации внутри сайтов с поддержкой,

используйте в разделе каталога:

<Directory "path/to/dir">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

Не используйте следующую внутреннюю директорию

Order allow,deny
Allow from all

Директивы Order и Allow устарели в Apache 2.4.

Аналогично, вы можете установить каталог в /etc/apache2/apache2.conf, установить каталог для вашего пути и не использовать вышеизложенное - это приведет к ошибке 403.

В дополнение к этому вам нужно будет включить mod_rewrite для apache

Ответ 9

Вот еще одна версия для Wordpress, оригинальная не работала так, как задумано.

# BEGIN WordPress
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^index\.php$ - [END]
    RewriteCond $1 ^(index\.php)?$ [OR]
    RewriteCond $1 \.(gif|jpg|png|ico|css|js)$ [NC,OR]
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^(.*)$ - [END]
    RewriteRule ^ /index.php [L]
</IfModule>
# END WordPress

Ссылка из этого репозитория Github, немного измененная. После чрезмерного тестирования это правило не решает всех проблем. У нас есть интернет-магазин Wordpress, который имеет 40 плагинов и где-то есть конфликт переписывания. Я искренне надеюсь, что следующая версия Wordpress не будет переписана.


RewriteRule ^index\.php$ - [L]

Syntax Rewrite Rule

^ Обозначает начало строки, \ экранирует . или это будет означать любой символ, а $ означает конец строки.

^index\.php$ if http (s)://hostname/index.php - флаг "ничего не делать" [END] можно использовать для завершения не только текущего цикла обработки перезаписи, но и для предотвращения любой последующей обработки перезаписи.


RewriteCond $1 ^(index\.php)?$ [OR]

Syntax Rewrite Condition

В RewriteCond используя $1 в качестве тестовой строки, ссылается на захваченное содержимое всего от начала до конца URL http (s)://hostname/bla/bla.php. Если он используется в подстановке или условии, он ссылается на захваченную обратную ссылку. RewriteRule (bla)/(ble\.php)$ - для http (s)://имя_хоста/bla/ble.php захватывает bla в $1 и ble.php в $2. Несколько групп захвата могут быть доступны через $3..N.

( ) группирует несколько символов в один блок ? принудительное совпадение. Флаг [OR] позволяет комбинировать условия перезаписи с логическим отношением ИЛИ, а не по умолчанию И.

Короче говоря, если bla/bla.php содержит index.php ИЛИ следующее условие


RewriteCond $1 \.(gif|jpg|png|ico|css|js)$ [NC,OR]

( ) группирует несколько символов в одну единицу, | разделяет символы на подгруппы и определяет их, если они есть. Флаг [NC] вызывает сопоставление RewriteRule без учета регистра.

Короче говоря, если bla/bla.php заканчивается каким-либо из типов файлов ИЛИ следующим условием


RewriteCond %{REQUEST_FILENAME} -f [OR]

Переменные сервера - это переменные в форме% {NAME_OF_VARIABLE}, где NAME_OF_VARIABLE может быть строкой, взятой из следующего списка:

enter image description here

%{REQUEST_FILENAME} - это полный путь локальной файловой системы к файлу или сценарию, соответствующему запросу, если он уже был определен сервером в момент обращения к REQUEST_FILENAME. В противном случае, например, при использовании в контексте виртуального хоста, то же значение, что и REQUEST_URI. В зависимости от значения AcceptPathInfo сервер может использовать только некоторые ведущие компоненты REQUEST_URI для сопоставления запроса с файлом.

-f проверить наличие обычного файла. Обрабатывает тестовую строку как путь и проверяет, существует ли она.

Короче говоря, если bla/bla.php - это файл ИЛИ следующее условие


RewriteCond %{REQUEST_FILENAME} -d

-d проверить каталог. Обрабатывает тестовую строку как путь и проверяет, существует ли она.

Короче говоря, если bla/bla.php это каталог


RewriteRule ^(.*)$ - [END] not as in Github [S=1]

Этот оператор выполняется только тогда, когда одно из условий вернуло true.

. соответствовать любому символу * ноль или более раз.

Флаг [S] используется для пропуска правил, которые вы не хотите запускать. Синтаксис флага пропуска: [S=N], где N обозначает количество пропускаемых правил (при условии соответствия RewriteRule). Это можно рассматривать как оператор goto в вашем наборе правил перезаписи. В следующем примере мы хотим запустить RewriteRule, только если запрошенный URI не соответствует реальному файлу.

Короче, ничего не делать


RewriteRule ^ /index.php [L]

Флаг [L] заставляет mod_rewrite остановить обработку набора правил. В большинстве случаев это означает, что если правило соответствует, дальнейшие правила не будут обрабатываться. Это соответствует последней команде в Perl или команде break в C. Используйте этот флаг, чтобы указать, что текущее правило должно применяться немедленно, без учета дальнейших правил.

Короче говоря, переписать каждый путь как http (s)://hostname/index.php


Я взял этот маленький документ из документации apaches.org. Ссылки ниже.

Ответ 10

FWIW: я перестроил сервер LAMP с нуля и установил WordPress. У меня возникла та же проблема после сохранения моей настройки Постоянной ссылки для создания файла .htaccess. Оказывается, что mod_rewrite не был включен. Я наткнулся на этот пост в Digital Ocean.
FTA:

Сначала нам нужно активировать mod_rewrite. Он доступен, но не включен при чистой установке Apache 2.

$ sudo a2enmod rewrite

Это активирует модуль или предупредит вас, что модуль уже включен. Чтобы эти изменения вступили в силу, перезапустите Apache.

$ sudo systemctl restart apache2

Ответ 11

в настройках> постоянные ссылки WordPress установите простой и повторите тест.

Ответ 12

Хотя решение этой проблемы вряд ли закодировано в регенерации вашего файла .htaccess; на самом деле это не работает для большинства из вас, особенно, когда сайт переносится на какой-то новый сервер.

Давайте погрузимся в некоторые основы.

Предположим, что для большинства из нас среда WordPress работает на PHP-сервере APACHE, где этот сервер контролирует большинство начальных зависимостей нашей среды. Между тем создание .htaccess также в основном зависит от конфигураций Apache.

Таким образом, если бы это было сказано, вклад конфликта создания .htaccess в основном возникает, когда веб-сайт WordPress переносится с сервера, на котором работает среда WordPress на старой версии Apache и PHP, на более новую версию PHP и Apache.

Поскольку зависимости nrwer и более старых версий отличаются, поэтому более новая версия Apache2 не позволяет директивам .htaccess создавать файл .htaccess по умолчанию; из-за этого мы должны вручную установить разрешения корневого каталога веб-сайта WordPress с "AllowOverride None" на "AllowOverride All".

Для сравнения, директива AllowOverride используется, чтобы разрешить использование .htaccess на веб-сервере, чтобы разрешить переопределение конфигурации Apache для каждого каталога.

Используйте следующее исправление, чтобы изменить настройки разрешений для каталога apache2.conf:

Как устранить ошибку GCP WordPress " Эта страница не работает example.com в настоящее время не может обработать этот запрос. HTTP ERROR 500

Ответ 13

У меня такая же проблема. Моя домашняя страница может быть доступна, но статья просто не найдена на сервере.

Перейдите к cpanel file manager > public_html и удалите .htaccess.

Затем перейдите к настройке постоянной ссылки в WordPress, установите постоянную ссылку на все, что хотите, затем сохраните. альт все возвращается к норме.

Эта проблема возникла после обновления WordPress.

Ответ 14

** Исправлена ​​проблема с Permalink Issue Wordpress ** 1) Войдите в панель инструментов Wordpress > щелкните по настройкам > предварительные ссылки > , затем выберите имя публикации. 2) После этого входа на ваш сервер хостинга перейдите в файл .htaccess и замените код.

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

Ответ 15

Просто разрешите mod_rewrite.so с сервера Apache. Перезагрузите, и ВЫ ИМЕЕТ?)

Ответ 16

Убедитесь, что mode_rewrite включен в настройках APACHE. См. Ссылку здесь https://github.com/h5bp/server-configs-apache/wiki/How-to-enable-Apache-modules

Затем убедитесь, что у вас есть правильный .htaccess https://wordpress.org/support/topic/404-errors-with-permalinks-set-to-postname/

И исправьте настройки виртуального хоста в настройках Apache Как установить AllowOverride все

Ответ 17

изменить только .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