в моем понимании ErrorDocument 404 /404.php
будет работать, только если не указано правила перезаписи .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
Поскольку wordpress имеет собственный life cycle, который использует URL-адрес перезаписи в .htaccess
, чтобы определить, какой запрос страницы подходит. У WordPress есть основной механизм для понимания текущего запроса. Например, вы создали имя страницы hello-word
, когда вы переходите на http://your_wordpress.com/hello-word
wordpress определяет hello-world
из URL-адреса и находите в его базе данных, есть ли у него hello-word
страница или нет. Если текущая страница не существует в базе данных, тогда механизм автоматически вызывает шаблон темы 404, который находится в текущей активной теме.
Решение
Создайте файл в wp-content/themes/YOUR-THEME/404.php
и изменить его содержание. Вам не нужно указывать ErrorDocument 404 /404.php
в .htaccess
. Подробнее о создании 404
шаблона here
ОК. Но у меня есть другой шаблон и другой сайт в корне. И я не хочу, чтобы он перенаправлялся к wordpress 404. Есть ли способ переопределить перенаправление wordpress в .htaccess? – AeJey