• Доброго времени суток. Подскажите пожалуйста, как сделать страницу 404 ошибки ?

    Сейчас любой неправильный урл становится страницей 404 ошибки, а необходимо создать лишь одну и настроить на нее редирект.

    Как это сделать ? Где копать ?

    В хатцессе хочу прописать так: ErrorDocument 404 h**p://www.site.ru/404/

    Спасибо.

Просмотр 8 ответов — с 1 по 8 (всего 8)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Создайте обычную страницу с ярлыком 404 и собственным шаблоном.

    Подскажите пожалуйста по поводу 404

    Есть две установленных копии ВП с разными базами, одна в корне /, вторая в каталоге /wp и открываются в браузере по адресам site.ru и site.ru/wp соответственно
    В корне есть .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>

    и

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

    Вопрос в том, что показывается 404 от коренного движка на любую несуществующую страницу — как на первый движок site.ru/blablabla, так и на второй site.ru/wp/blablabla, и даже на другие движки, например smf на том же сервере site.ru/forum/blabla
    Как мне правильно сделать отображение 404 из темы /wp на соответствующей странице?
    Создавал в /wp/.htacces строки второго модуля — не помогает. Собственно, даже отсутствие этого файла в /wp картины не меняет, видимо всем рулит коренной, но он дает 404 не от нужного движка.

    Уточню:
    Если второй модуль я убираю из корневого .htaccess — в отсутсвующих страницах /wp отображается 404 коренного движка

    Если создаю /wp/.htaccess и в нем прописываю второй модуль — отображается белая страница без единой строки кода или ошибки

    Есть две установленных копии ВП с разными базами, одна в корне /, вторая в каталоге /wp и открываются в браузере по адресам site.ru и site.ru/wp соответственно

    А мсье знает толк в извращениях…

    Про файл понял, но где в коде подправить, чтобы если страницы нет, то подгружать «вот эту» страницу …

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    где в коде подправить, чтобы если страницы нет, то подгружать «вот эту» страницу …

    Можно добавить фрагмент в functions.php активной темы:

    function redirect_404() {
    	if ( is_404() && $_SERVER['REQUEST_URI'] != '/404/' )
    		wp_redirect('/404/');
    }
    add_action('template_redirect', 'redirect_404');

    Sergey Biryukov, спасибо огромное. Все заработало.

    Таким образом будет soft 404 (код ошибки наверное вообще 200 вернется), а это ни Googlge ни Яндекс не любят.

Просмотр 8 ответов — с 1 по 8 (всего 8)

Тема «страница 404 ошибки» закрыта для новых ответов.