从某些位置找不到网站 404
website 404 Not Found from some locations
我已经将网站从物理服务器 运行 apache 迁移到虚拟机 运行 nginx。
当我直接访问网站时 link,网站已启动:http://www.via-ap.com
但是当我转到 Google 并单击右侧面板上的网站时,我收到 404 错误。
见下文:
我在许多浏览器和私有模式下进行了这些测试。
我的默认 nginx vhost conf 是:
server {
server_name _;
listen 80 default_server;
listen 443 ssl default_server;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
return 404;
}
然后每个网站都有自己的 conf,如下所示:
server {
listen 80;
listen [::]:80;
server_name website.com;
return 301 https://www.$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name www.website.com website.com;
root /home/website/www/;
index index.html index.htm index.php;
access_log /var/log/nginx/website.access_log;
error_log /var/log/nginx/website.error_log info;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.2-fpm-website.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
include /etc/nginx/conf/website.conf; /* file where strict transport security headers are defined */
ssl_certificate /etc/letsencrypt/live/website.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/website.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/website.com/chain.pem;
include /etc/nginx/conf/ssl.conf;
}
你知道为什么吗?
谢谢
L.
已找到解决方案。
在第一个服务器块上(收听 80)
正如你先说的,除了website.com[=24=,我还添加了www.website.com ]
然后我将 return 301 https://www.$host$request_uri; 替换为 return 301 https://$host$request_uri;
我已经将网站从物理服务器 运行 apache 迁移到虚拟机 运行 nginx。
当我直接访问网站时 link,网站已启动:http://www.via-ap.com
但是当我转到 Google 并单击右侧面板上的网站时,我收到 404 错误。
见下文:
我在许多浏览器和私有模式下进行了这些测试。
我的默认 nginx vhost conf 是:
server {
server_name _;
listen 80 default_server;
listen 443 ssl default_server;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
return 404;
}
然后每个网站都有自己的 conf,如下所示:
server {
listen 80;
listen [::]:80;
server_name website.com;
return 301 https://www.$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name www.website.com website.com;
root /home/website/www/;
index index.html index.htm index.php;
access_log /var/log/nginx/website.access_log;
error_log /var/log/nginx/website.error_log info;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.2-fpm-website.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
include /etc/nginx/conf/website.conf; /* file where strict transport security headers are defined */
ssl_certificate /etc/letsencrypt/live/website.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/website.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/website.com/chain.pem;
include /etc/nginx/conf/ssl.conf;
}
你知道为什么吗?
谢谢 L.
已找到解决方案。 在第一个服务器块上(收听 80)
正如你先说的,除了website.com[=24=,我还添加了www.website.com ]
然后我将 return 301 https://www.$host$request_uri; 替换为 return 301 https://$host$request_uri;