@Andrew_Lays

Как сделать нормальную 404 ошибку?

Имеется nginx с такими конфигами:
server {
	listen 80;

	server_name bety.ml *.bety.ml;

	return 301 https://$host$request_uri;
}

server {
	listen 443 ssl spdy;

	server_name bety.ml *.bety.ml;

	ssl_session_cache shared:SSL:10m;
	ssl_session_timeout	 5m;
	ssl_prefer_server_ciphers	 on;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	ssl_certificate /etc/nginx/ssl/bety.ml_bundle.crt;
	ssl_certificate_key /etc/nginx/ssl/bety.ml.key;
        ssl_trusted_certificate /etc/nginx/ssl/ca-certs.pem;
	ssl_dhparam /etc/nginx/ssl/dhparam.pem;
	ssl_ciphers kEECDH+AES128:kEECDH:kEDH:-3DES:kRSA+AES128:kEDH+3DES:DES-CBC3-SHA:!RC4:!aNULL:!eNULL:!MD5:!EXPORT:!LOW:!SEED:!CAMELLIA:!IDEA:!PSK:!SRP:!SSLv2;
	ssl_stapling on;
	ssl_stapling_verify on;

	resolver 8.8.8.8 8.8.4.4 valid=300s;
	resolver_timeout 5s;

        add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";
	add_header Content-Security-Policy-Report-Only "default-src https:; script-src https: 'unsafe-eval' 'unsafe-inline'; style-src https: 'unsafe-inline'; img-src https: data:; font-src https: data:; report-uri /csp-report";

	root /var/bety/$subdomain;
	index index.php;

	set $subdomain "";

	if ($host ~* ^([a-z0-9-\.]+)\.bety.ml$)
	{
		set $subdomain $1;
	}

	if ($subdomain = "www")
	{
		return 301 $scheme://bety.ml$request_uri;
	}

	if ($subdomain = "")
	{
		set $subdomain "www";
	}

	error_page 404 /404.html;
	error_page 500 502 503 504 /50x.html;

	location /
	{
		try_files $uri $uri/ /index.php;
	}

	location ~ \.php$
	{
		try_files $uri =404;
		fastcgi_pass unix:/var/run/php5-fpm.sock;
		fastcgi_index index.php;
		fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
		include fastcgi_params;
	}
}

Если в адресной строке набрать example.com/some_page.php то вернёт 404 ошибку, все как и должно, а если набрать, скажем, example.com/some_directory то вернет главную страницу, т.е тоже самое, что делать запрос на example.com/index.php, или если набрать example.com/some_file.html, example.com/some_pic.gif, example.com/some_book.pdf , опять же вернет главную страницу, но не 404.

Что не так с конфигами?

PS: https://bety.ml/
  • Вопрос задан
  • 336 просмотров
Решения вопроса 1
POS_troi
@POS_troi
СадоМазо Админ, флудер, троль.
Пригласить эксперта
Ответы на вопрос 1
opium
@opium
Просто люблю качественно работать
Так у вас в конфиге так и написано если нету файла то обратиться в индекс пхп
try_files $uri $uri/ /index.php;

Логично передать все параметры в него в зависимости от cms
Для вордперсса скажем вот так
try_files $uri $uri/ /index.php?q=$uri&$args;
Ответ написан
Ваш ответ на вопрос

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

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