繁体   English   中英

Nginx显示除首页以外的所有页面均未找到404

[英]Nginx showing 404 Not Found for every page but homepage

我正在尝试在ubuntu上的Nginx服务器上运行php应用程序。 我确实将所有文件都放在var / www / mydomain.com.html中,它完美呈现了index.php。 但是,即使这些文件存在于同一目录中,也为其他所有页面显示404 Not Found。

这是我的服务器块配置。

server {
listen   80; ## listen for ipv4; this line is default and implied
listen   [::]:80; ## listen for ipv6

root /var/www/app.limoposter.com/html;
index index.php index.html index.htm;

server_name app.limoposter.com www.app.limoposter.com;

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

}

error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
    root /usr/share/nginx/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;
}

}

似乎您有一个.htaccess,它将每个请求都路由到index.php。由于nginx无法理解.htaccess文件,因此您必须使用nginx重写此文件。请参阅https://winginx.com/zh_CN/htaccess

编辑:我下载了您的.htaccess并使用了上面提到的转换器:这是输出:

autoindex off;
location / {
if ($script_filename !~ "-d"){
rewrite ^/login/(.*)/$ /login.php?type=$1 break;
}
if ($script_filename !~ "-d"){
rewrite ^/dashboard/(.*)/$ /dashboard.php?show=$1 break;
}
if ($script_filename !~ "-d"){
rewrite ^/admin/(.*)/$ /admin.php?module=$1 break;
}
if ($script_filename !~ "-d"){
rewrite ^/(.*)/$ /$1.php break;
}
if ($request_uri ~ "storage/(\d+)_(.*)$"){
rewrite ^/storage/(\d+)_(\d+)/([a-zA-Z0-9_]+).([a-zA-Z0-9_\.]+)$ /download.php?folder=$1_$2&file=$3.$4 break;
}
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM