shakoid
@shakoid
нубас

Как настроить ответ 404 rewriterule?

Добрый день всем.
У меня проблема с ответом сервера 404.
Сайт создавался на базе когда-то заказанного моим другом.
Есть файл .htaccess с таким содержанием:

DefaultLanguage ru
AddDefaultCharset utf-8
php_value default_charset "utf-8"
php_value date.timezone "Europe/Moscow"

#AddType application/x-httpd-php .php .phar
RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html .phtml .phar


<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]



#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{REQUEST_URI} !^([\d\w\-\/\:\.]*(?:\.phar))$ [NC]
#RewriteRule (themes\/default)([\d\w\-\/\:\.]*) ${themes/default.phar:$2} [L,QSA]

#RewriteRule ^/tmp/([^\.]+)\.(png|jpg|gif)$    /image.php?file=$1.$2 [NC,L]
RewriteCond %{REQUEST_URI} !^([\d\w\-\/\:\.]*(?:\.jpg|\.jpeg|\.png|\.ico|\.tif))$ [NC]
RewriteCond %{REQUEST_URI} !^([\d\w\-\/\:\.]*(?:\.css|\.js|\.eot|\.svg|\.ttf|\.woff|\.woff2|\.map))$ [NC]
RewriteCond %{REQUEST_URI} !^([\d\w\-\/\:\.]*(?:\.pdf|\.txt|\.html|\.xml))$ [NC]
#RewriteCond %{REQUEST_URI} !^([\d\w\-\/\:\.]*(?:\.phar|\.php))$ [NC]
RewriteCond %{REQUEST_URI} !^([\d\w\-\/\:\.]*(?:\.ogm|\.ogv|\.ogg|\.webm|\.mp4))$ [NC]
RewriteRule . index.php  [L,QSA]
#RewriteRule ^(.*[^/])$ /$1/ [L,R]
 AddType video/ogg .ogm
AddType video/ogg .ogv
AddType video/ogg .ogg
AddType video/webm .webm
AddType video/mp4 .mp4
</IfModule>

AddType image/svg+xml svg svgz
<IfModule mod_deflate.c>
  <IfModule mod_filter.c>
      AddOutputFilterByType DEFLATE "image/svg+xml" \
                                    "text/css" \
                                    "text/html" \
                                    "text/javascript"
  </IfModule>
</IfModule>


есть файл index.php с таким содержанием:

<?php

mb_internal_encoding("UTF-8");


$action = ''; 
$arguments = explode('/', $_SERVER['REQUEST_URI']);
$action = "default";

// function is_mail($email) {
// 	return filter_var($email, FILTER_VALIDATE_EMAIL);
// }

if (count($arguments) > 1) {
	if (!ctype_space($arguments[1]) && !empty($arguments[1])) {
		$action = $arguments[1];
	}
}

if (count($arguments) > 2) {
	$id = $arguments[2];
}

if ($action == "default") {
	$pageTitle = "Дизайн инетерьера в Киеве";
	$pageDesc = "Отличный дизайн интерьера, с учетом Ваших пожеланий, в Киеве по выгодным ценам и в оптимальные сроки от компании Good Idea";
	$pageKeys = "дизайн интерьера киев выгодно ремонт квартир";
	include("index_page.php");
}

else if (strtolower($action) == "sendticket"){
	include("{$_SERVER['DOCUMENT_ROOT']}/sendticket.php");
}


пролистал много страниц гугла, но так и не понял как мне отдавать ответ сервера 404 при не существующих страницах. У меня, в случае несуществующей страницы, просто пуста страница без какого-либо кода.
В файле индекс существовало перенаправление на 404.php. Но проблема в том, что в таком случае сервер отдавал мне код 200 и показывал мою страницу 404.php
Подскажите, пожалуйста, что нужно прописать, чтоб получить ответ сервера код 404, в случае обращения к несуществующим страницам. Спасибо
  • Вопрос задан
  • 243 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы