NGINX 404所有页面

时间:2018-10-05 04:09:31

标签: nginx

所以我有两个要解决的问题。首先,我试图理解NGINX并将其用于重定向以及其他所有操作;但是,如果我尝试从php / html文件中删除扩展名,则只会下载该文件。如果我使用其他方法尝试(不尝试文件扩展名),它只会给我404。我不确定是什么问题,还是我做错了什么。

首先,我将显示我的删除p​​hp文件扩展名问题:

server {
    listen 443;
    server_name XXX.XX.XX.XX;

    root /var/www/html;
    location / {
        try_files $uri $uri.html $uri/ @extensionless-php;
        index index.html index.htm index.php;
    }

    location ~ \.php$ {
        try_files $uri =404;
    }

    location @extensionless-php {
        rewrite ^(.*)$ $1.php last;
    }
}

这是我用来解决上述问题的其他代码(但仅给我404错误)

server {
    listen 443;
    server_name XXX.XX.XX.XX;

    root /var/www/html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /var/www/html;
    }

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

XXX.XX.XX.XX是我的服务器IP。

PS:我已经读到我需要首先使用底部部分才能使顶部部分正常工作。

来源包括:

How to remove both .php and .html extensions from url using NGINX?

https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-ubuntu-14-04

请帮忙。

更新: Kuldeep KD-770 / var / www / html(不是解决方案,但谢谢) Jignesh Joisar-尝试端口80(失败,但通常要感谢)

2 个答案:

答案 0 :(得分:0)

在/ var / www / html上检查必要的权限 您可以使用

更改权限
chmod -R 770 /var/www/html/

还要检查目录的所有者,您可能还必须更改该目录,这取决于您的nginx使用的用户。

chown -R user:group /var/www/html

答案 1 :(得分:0)

80端口尝试此

server {
    listen 80 default_server;


    root /var/www/html/;


    # Add index.php to the list if you are using PHP
    index index.php index.html index.htm;

    server_name localhost;

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;   
    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
         try_files $uri $uri/ /index.php$is_args$args;
    }

    # pass PHP scripts to FastCGI server
    #
    location ~ \.php$ {
        try_files $uri /index.php =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;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    location ~ /\.ht {
        deny all;
    }
}