Задать вопрос
@BloodVIRUS

Как в nginx сделать ошибку 404?

Здравствуйте. Пытаюсь сделать свою 404 ошибку для сайта, но ничего не получается. Вроде бы надо всего лишь указать error_page 404 /404.html; и все, но нет. У меня все равно идут редиректы на главную страницу..
Привожу ниже свой конфиг:
spoiler
server {
    listen                          80;
    server_name                     site.ru;
    root                            /var/www/site.ru;
    access_log                      /var/log/nginx/domain-access.log;
    error_log                       /var/log/nginx/domain-error.log;
    index                           index.php index.html;
	error_page 404 /404.html;
    rewrite_log                     on;
    location ~* ^/admin/ {
        root					/var/www/user/;

		location ~ \.php$ {
			include                 fastcgi_params;
			fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
			fastcgi_pass    backend-valhalla;
		}
    }

    location / {
        try_files               $uri $uri/ @rewrite;
    }
    location /index.html {
        rewrite                 / / permanent;
    }

    location ~ ^/(.*?)/index\.html$ {
        rewrite                 ^/(.*?)/ // permanent;
    }
    location @rewrite {
        rewrite                 ^/(.*)$ /index.php?q=$1;
    }
    location ~ \.php$ {
        include                 fastcgi_params;
        fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass    backend-valhalla;
    }
    location ~* ^.+\.(jpg|jpeg|gif|png|ico|bmp)$ {
        #access_log           off;
        expires                      10d;
        break;
    }
	
    location ~* ^.+\.(css|js)$ {
        #access_log           off;
        expires                      epoch;
        break;
    }

    location ~ /\.ht {
        deny                    all;
    }
}
  • Вопрос задан
  • 947 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
Frankenstine
@Frankenstine
Сисадмин
Сначала вы делаете try_files $uri $uri/ @rewrite; затем вы делаете rewrite ^/(.*)$ /index.php?q=$1; и после этого вы удивляетесь что вызывается index.php вместо обработки несуществующей страницы?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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