2014-04-27 2 views
4

내 Nginx 서버가 내 404 페이지를 표시하지 않습니다. 대신, 존재하지 않는 페이지 또는 디렉토리에 액세스하려고 할 때마다 웹 사이트의 루트 (대응하는 스타일 시트가없는)의 색인 (.php) 만 제공합니다.Nginx가 404 페이지를 표시하지 않고 대신 루트에 색인 파일을 제공합니다.

여기에서 내 자신의 '기본'파일의/etc/nginx를/사이트 이용 가능한 :

server { 
listen 80; 
listen [::]:80 ipv6only=on; 
listen 443 ssl; 
listen [::]:443 ipv6only=on ssl; 

add_header Strict-Transport-Security max-age=15768000; 
ssl_certificate /etc/nginx/ssl/server.crt; 
ssl_certificate_key /etc/nginx/ssl/server.key; 
ssl_protocols TLSv1.1 TLSv1.2; 
ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4'; 
ssl_prefer_server_ciphers on; 

root /usr/share/nginx/html; 
index index.html index.htm; 

location/{ 
    index index.php; 
} 

if (!-e $request_filename) { 
    rewrite ^.*$ /index.php last; 
} 

try_files $uri $uri/ =404; 

error_page 403 404 405 /error/404.html; 
error_page 500 501 502 503 504 /error/50x.html; 

location ^~ /error/ { 
    internal; 
    root /usr/share/nginx/html; 
} 

location ~ \.php$ { 
    fastcgi_split_path_info ^(.+\.php)(/.+)$; 
    fastcgi_pass unix:/var/run/php5-fpm.sock; 
    fastcgi_index index.php; 
    include fastcgi_params; 
} 
} 

이 날이 새로운 것을 너무 많이 만지작까지 의심 할 여지없이, 그래서 다른 가능성이있다 여기에도 문제가있다. (나머지는 일단 고쳐지면 HTTPS 연결을 강요 할 수있다. 도움말 및 건설적인 의견 감사, 감사합니다!

답변

4

당신이 파일이 존재하지 않는 경우는 결코 당신의 try_files 또는의 errorpage로하지 않습니다, 그래서되는 index.php 다시 작성하는 ...

if (!-e $request_filename) { 
    rewrite ^.*$ /index.php last; 
} 

특정 목적이없는 한 ^은 제거해야 그것을 위해

+0

우수! 이제 하나의 사소한 문제 만 있습니다. 404가 존재하지 않는 .PHP 파일에서 나온 것이라면 "파일을 찾을 수 없습니다." 지정된 404.html 파일을 제공하는 대신 (이제는 다른 모든 잘못된 요청과 함께 404.html을 올바르게 제공합니다.) – SamHH

+0

fastcgi_intercept_errors –

+0

그리고 그 점도 마찬가지입니다. 감사합니다. – SamHH

관련 문제