it-swarm.com.ru

Запрошенный URL/about не был найден на этом сервере

Домашняя страница моего сайта 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
28
user1096057

Это не типичный блок переписывания 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, Shell или (возможно) вашего Панель управления хостом.

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

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

35
markratledge

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

  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 >

42
Birendra Rawat

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

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

7
yadavr

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

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

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

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

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

7
Clapham

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

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

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

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

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

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

Следующий код перезаписи постоянной ссылки должен быть включен в ваш Файл .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
Eric Brotto

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

В моих настройках Apache (httpd.conf) я включил следующий модуль:

LoadModule rewrite_module modules/mod_rewrite.so

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

4
lukeocom

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

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

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

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

3
Seth 666

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

2
Deepesh Thapa

Вот еще одна версия для 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$ если http (s): // имя_хоста/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] позволяет комбинировать условия перезаписи с логическим отношением OR в отличие от значения по умолчанию AND.

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


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

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

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


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 является файлом OR, следующее условие


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. Ссылки ниже.

1
Ako

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

0
Omid Ahmadyani

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

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

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

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

0
adite

** Решена проблема с постоянными ссылками 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>
0
Ashar Zafar

Убедитесь, что 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 all

0
MSaudi