Wordpress: файл .htaccess и правила перезаписи: страницы пользовательского типа сообщения (CPT) возвращаются с ошибками Apache

Ответить
Anonymous
 Wordpress: файл .htaccess и правила перезаписи: страницы пользовательского типа сообщения (CPT) возвращаются с ошибками

Сообщение Anonymous »

хотя многие говорят: CPT не предъявляют необычных или специфических требований к серверному оборудованию - я думаю, что для большинства случаев использования достаточно стандартного хостинга WordPress,
у меня вопрос: каковы условия - которые вы считаете наиболее важными!?
Кстати; относительно среды PHP и условия: я предполагаю, что мы обеспечиваем, чтобы на сервере работала последняя поддерживаемая версия PHP для оптимальной производительности и безопасности.
Что касается перезаписи URL-адресов (Постоянные ссылки): CPT используют правила перезаписи WordPress для создания чистых, удобных для пользователя URL-адресов (постоянных ссылок), например, на my_site.com.
Условие: Веб-сервер (обычно Apache или Nginx) должен быть настроен для правильной обработки файла WordPress .htaccess или эквивалентных правил перезаписи. Если страницы CPT возвращаются 404, это часто указывает на проблему с перезаписью конфигурации на стороне сервера, которую обычно можно исправить, просто повторно сохранив настройки постоянной ссылки в области администрирования WordPress.
Что делать, если созданные URL-адреса https://www.my_site.com/cpt/addsmart/
https://www.my_site.com/cpt/ недоступны (!)!
ну поверьте мне: поведение забавное.
оба URL-адреса https://www.my_site.com/cpt/addsmart/
https://www.my_site.com/cpt/ оба выдают отказ в доступе
кстати: я написал следующее в файл .htaccess

Код: Выделить всё

# BEGIN WordPress

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

# END WordPress
но я думаю, что это не обработано - из-за некоторых проблем с конфигурацией.
обновление: посмотрите еще немного информации
и посмотрите это - что я добавил в .htaccess

Код: Выделить всё

Permalink-Struktur: Plain
WordPress does not create any Rewrite-Regeln
all the "pretty URLs"  run over:
mod_rewrite (Apache) or
Nginx Rewrite Rules

but well my server Server says:

❌ „these URLs could not be executed“
посмотрите некоторые сведения о конфигурации:
вывод: PHP и Apache построены правильно, mod_rewrite, похоже, загружен
Команда настройки:

Код: Выделить всё

'./configure' '--prefix=/usr/local/php-8.4.14' '--with-apxs2=/usr/local/apache/bin/apxs' '--without-snmp' '--disable-ipv6' '--enable-sigchild' '--with-pear' '--with-mysql-sock=/var/run/mysql/mysql.sock' '--enable-calendar' '--with-zlib' '--enable-mbstring' '--with-pdo-mysql' '--with-mysqli' '--disable-mbregex' '--with-openssl=/usr/local/' '--enable-shmop' '--enable-sysvshm' '--with-pdo-sqlite' '--enable-gd' '--with-mm=/usr/local/mm/' 'OPENSSL_CFLAGS=-I/usr/local/include' 'OPENSSL_LIBS=-L/usr/local/lib -lssl -lcrypto' '--with-openssl-argon2' '--enable-static=NO' '--with-curl=/usr/local/' 'CFLAGS= -O2 -march=native -Wno-erro '
Загруженные модули:

Код: Выделить всё

'http_core mod_authn_file mod_authn_dbm mod_authn_socache mod_authz_host mod_authz_groupfile mod_authz_user mod_authz_core mod_access_compat mod_auth_basic mod_auth_digest mod_socache_shmcb mod_watchdog mod_ratelimit mod_reqtimeout mod_filter mod_deflate mod_mime mod_log_config mod_env mod_mime_magic mod_expires mod_headers mod_usertrack mod_setenvif mod_version mod_session mod_session_cookie mod_ssl prefork mod_unixd mod_autoindex mod_dir mod_alias mod_rewrite mod_php'
обновление 2 ну и еще несколько замечаний:

Код: Выделить всё

mod_rewrite ✔ loaded

Код: Выделить всё

WordPress Plain-Links ✔ running well

Код: Выделить всё

Pretty Permalinks ❌ 403

Код: Выделить всё

Theme - tt3 tt4 tt5 - each time the same behavior

Код: Выделить всё

Plugins - they do not play a vital role
Кажется, это единственное, чего не хватает:

Код: Выделить всё

❌ Apache blocks .htaccess or the Paths
ну хм - это может означать:
случай 1: AllowOverride None
Apache не читает .htaccess, хотя файл существует.
пример - проблематично:

Код: Выделить всё

AllowOverride None

➡️ WordPress не может активировать некоторые (любые) правила перезаписи
➡️ Apache отвечает 403 «Доступ запрещен»
случай 2: ограничительные или -правила
для примера

Код: Выделить всё

Require all denied
или:

Код: Выделить всё

Require all denied
➡️ были видны только явно разрешенные файлы (index.php?p=123)
➡️ виртуальные пути (/my_slug/) были заблокированы
и – еще немного информации:
Почему отображается ?p=123 (важный момент – !!) будет передан непосредственно index.php — он «передан» index.php

Код: Выделить всё

no Rewrite
нет проверки пути

Код: Выделить всё

/my_slug/:
Проверки Apache:
а. может ли этот путь быть «Истинным» - может ли этот путь существовать?
b. есть ли какие-нибудь правила?
разрешено ли .htaccess здесь "делать что-нибудь"?
👉 и именно здесь появляется ошибка 403....
ну - мне нужно это исправить - мне обязательно нужно это "исправить", и мне нужно избавиться от этих проблем
Диагноз (окончательный):
Ваш сервер блокирует все «URL-адреса на основе путей» (/foo, /edih/, /sample-post/) на уровне Apache до того, как WordPress примет меры.

Код: Выделить всё

+------------------------+-----------------+------------------------------------+

|          Test          |     result      |              meaning               |

+------------------------+-----------------+------------------------------------+

| /?p=POST_ID            | ✔ visible        | PHP + WordPress OK                |

| /permalink-test/       | ❌ Access denied | Rewrite-URLs blocked              |

| /this-should-not-exist | ❌ Access denied | Apache blockt Patgs               |

| /wp-content/           | blank            | Directory Listing deaktiviert (ok)|

| /wp-includes/          | ❌ Forbidden     | closed  (normal)                  |

| /rewritetest.php       | ❌ Access denied | critical                          |

+------------------------+-----------------+------------------------------------+

и любая идея — мы будем очень признательны
привет
новое обновление: рекомендация:
Только что увидел ваш пост с обновлением о тестировании URL-адресов. Какой у вас параметр «Настройки» > «Постоянные ссылки»? Это должно быть «Имя сообщения»
,,,, я активировал табличку и работал, как рекомендовано: но посмотрите, что произошло: после того, как я переключился в «Постоянных ссылках» на рекомендуемую опцию, я был заблокирован. мне не удалось перейти ни на одну страницу:
не помогло вернуть wp_options через базу данных:
я хотел вернуть правила перезаписи: через БД:
step1
UPDATE wp_options
SET option_value = ''
WHERE option_name = 'permalink_structure';
step2
UPDATE wp_options
SET option_value = ''
WHERE option_name = 'rewrite_rules';
эти вышеперечисленные шаги - они вообще не помогли - я всегда получаю обратно запрещенный доступ
id не помогал - также не помогло добавление этих строк в файл конфигурации:
define('WP_HOME', 'https://www.my_site.com');
define('WP_SITEURL', 'https://www.my_site.com');
Это проясняет один очень важный момент: (все кажется немного странным)
❗ WordPress в настоящее время вообще не работает.
Код в wp-config.php не работает → Apache блокирует PHP.
Это уже не Проблема WP, ACF или CPT.
Мы на 100% на уровне Apache/сервера.
У меня строгий диагностический подход — я думаю, что администратору сервера нужно что-то протестировать или изменить на сервере.
см. предыдущий тест — результаты и так далее..:

Код: Выделить всё

+-----------------------------+----------------+--------------------------------------+
|     Test                    |Result          |  Meaning;                            |
+-----------------------------+----------------+--------------------------------------+
|                             |                 |                                      |
| /?p=ID                      | (previously) ✔ | WordPress was running;               |
| /index.php                  | ❌ Forbidden    | PHP is blocked;                      |
| /wp-login.php               | ❌ Forbidden    | WordPress is not running;            |
| /rewritetest.php (physical) | ❌ Forbidden    | Apache is blocking paths in general; |
| Change in wp-config.php     |  ❌ Ineffective | WordPress is not reachable;          |
+-----------------------------+----------------+--------------------------------------+
Одна (или несколько) из этих проблем активна:
Неправильный корень документа
Неправильный путь (очень часто!)
Глобальное правило «Требовать все запрещено»
Усиление безопасности, например:
mod_security
mod_evasive
paX / CageFS
Plesk / Ограничение ISPConfig
Файл .htaccess вообще не читается, даже если параметр AllowOverride All установлен.
администратору сервера необходимо проверить это:
ls -la /PFAD/ZU/WORDPRESS/index.php
Если этот файл не существует или отображается другой путь,
тогда VirtualHost указывает
⚠️ Это самая распространенная ошибка.
ТЕСТ 2 – Apache-Config: неправильный путь к каталогу
очень часто (неправильный):

Требовать все отказы

или вот так:

Требовать все отказы

Тогда достаточно одной неправильной настройки, чтобы все заблокировать. хм - минимальная конфигурация - должна выглядеть так /(как-то)

Код: Выделить всё

ServerName my_site.com
DocumentRoot /PFAD/ZU/WORDPRESS


AllowOverride All
Require all granted


путь должен быть идентичным – никаких несоответствий по символическим ссылкам
тест 4 (жесткий)

Код: Выделить всё

Require all granted

если после этого правило работает хорошо, то правило каталога блокирует WordPress.
ТЕСТ 4 – mod_security / WAF
вероятно, активен брандмауэр
Активен ли mod_security или брандмауэр веб-приложений?
если да, временно отключите его или исключите для VHost - с
SecRuleEngine Off
чтобы Подведем итог:
  • WordPress больше недоступен; даже /index.php возвращает ошибку 403
    . необходимо выполнить следующие проверки: действительно ли
    VirtualHost указывает на каталог, содержащий
    index.php; точно ли совпадают путь и DocumentRoot;
    действуют ли какие-либо правила «Требовать все запрещенные»; блокирует ли
    mod_security/WAF запросы. В качестве теста установите «Требовать
    все предоставленные» на корневом уровне.
Я вас держу разместил и проинформировал...;)

Подробнее здесь: https://stackoverflow.com/questions/798 ... ges-return
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Apache»