• Правильно ли я пропиcал код в файле .htaccess:

    ErrorDocument 404 https://мой_сайт/wp-content/themes/the-core-parent/404.php
    RewriteCond %{REQUEST_URI} ^/мой_сайт.*
    RewriteRule . - [R=404,L,NC]
    • Тема изменена 4 года, 5 месяцев назад пользователем elimelech.
    • Тема изменена 4 года, 5 месяцев назад пользователем elimelech.
Просмотр 15 ответов — с 1 по 15 (всего 33)
  • anonymized-17844177

    (@anonymized-17844177)

    elimelech,

    Правильно ли я пропиcал код в файле .htaccess

    Нет 🙂

    а где ошибка?

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Попробуйте открыть https://мой_сайт/wp-content/themes/the-core-parent/404.php в браузере и посмотреть, что там выдаётся. Предполагаю, что ошибки PHP, связанные с отсутствием get_header() и других функций движка.

    Какую именно задачу вы хотите решить?

    Шаблон 404.php обычно используется самим движком без необходимости что-то прописывать в .htaccess.

    но у меня Код ответа несуществующей страницы 404
    Получен код 200.

    При просмотре https://мой_сайт/wp-content/themes/the-core-parent/404.php в браузере вижу:

    Fatal error: Call to undefined function get_header() in /public_html/wp-content/themes/the-core-parent/404.php on line 6

    • Ответ изменён 4 года, 5 месяцев назад пользователем elimelech.
    • Ответ изменён 4 года, 5 месяцев назад пользователем elimelech.
    anonymized-17844177

    (@anonymized-17844177)

    elimelech, если так принципиально, то можете с заголовком подшаманить, будет ответ 404.

    если бы я умел шаманить. 🙁

    anonymized-17844177

    (@anonymized-17844177)

    elimelech,

    вариант №1:
    в файл 404.php можно добавить строчку header("HTTP/1.0 404 Not Found"); или status_header(404);

    вариант №2:
    в файл functions.php дочерней темы или в функциональный плагин добавить код:

    function status_header_404(){
    	if( is_404() ) {status_header(404);}
    }
    add_action('wp_head', 'status_header_404');

    Вот так?

    <?php
    /**
     * The template for displaying 404 pages (Not Found)
     */
    ?>
    <?php header("HTTP/1.0 404 Not Found"); ?>
    <?php get_header(); ?>
    <?php $the_core_sidebar_position = function_exists( 'fw_ext_sidebars_get_current_position' ) ? fw_ext_sidebars_get_current_position() : 'right'; ?>
    <div class="no-header-image"></div>
    <section class="fw-default-page fw-404-page fw-main-row <?php the_core_get_content_class( 'main', $the_core_sidebar_position ); ?>">
    	<div class="fw-container">
    		<div class="fw-row">
    
    			<div class="content-area <?php the_core_get_content_class( 'content', $the_core_sidebar_position ); ?>">
    				<h2 class="entry-title fw-title-404"><?php esc_html_e( '404 - Page Not Found', 'the-core' ); ?></h2>
    				<div class="page-content">
    					<p><?php esc_html_e( 'It looks like nothing was found at this location. Maybe try a search?', 'the-core' ); ?></p>
    					<?php get_search_form(); ?>
    				</div><!-- .page-content -->
    			</div><!-- /.content-area-->
    
    			<?php get_sidebar(); ?>
    		</div><!-- /.row-->
    	</div><!-- /.container-->
    </section>
    <?php get_footer(); ?>
    
    

    А если лучше сделать так?

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ - [L,R=404]
    ErrorDocument 404 /404.shtml
    
    RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress
    anonymized-17844177

    (@anonymized-17844177)

    elimelech,

    Вот так?

    Можно и так, но лучше вариант №2.

    А если лучше сделать так?

    Лучше чем именно? Что вы свой костыль добавляете к костылю в виде .htaccess? 🙂 Дело-то ваше, если хотите так — сделайте, никто не запрещает.

    вариант №2 не работает. 🙁

    anonymized-17844177

    (@anonymized-17844177)

    elimelech, в файл functions.php активной темы добавили код? Ссылку можно на сайт?

    добавил по второму варианту в файл functions.php в теме The Core Child, сайт https://cpmiohio.com

    У меня какие темы стоит родительская: 2)The Core Parent
    2)активная: The Core Child, пишет что: This is a child theme of The Core Parent.

    * * *
    в папке The Core Child нету файла 404.php, он есть тольок в папке The Core Parent

    • Ответ изменён 4 года, 5 месяцев назад пользователем elimelech.
    • Ответ изменён 4 года, 5 месяцев назад пользователем elimelech.
    • Ответ изменён 4 года, 5 месяцев назад пользователем elimelech.
    anonymized-17844177

    (@anonymized-17844177)

    elimelech, у вас сейчас все несуществующие страницы отдают почему-то главную страницу сайта — это раз. Два — у вас есть редирект на те же URL, только со слэшем в конце. Три — TTFB великоват и составляет ~3с.

    The Core

    В этом случае вообще не стоит трогать файлы темы, а следует обратиться в ТП вашей коммерческой темы, за которую вы заплатили при покупке.
    п.9 правил форума.

Просмотр 15 ответов — с 1 по 15 (всего 33)
  • Тема «Ошибка 404 на htaccess» закрыта для новых ответов.