修改Nginx,解决固定链接更新404问题
网站固定链接只能以朴素形式体现,这个问题显然不利于SEO,调整的想法一直在折磨我。看了几篇教程,改nginx代码多次,但是总不得其解。乃至装了一把宝塔和更改.htaccess仍未解决,甚至把网站搞瘫了超过72小时,从3月28日中午到3月31日晚上8点左右,一直无法恢复正常。。
念念不忘,必有回响,时至深夜,我觉得我应该找到了一个可以解决的办法,遂进行相关实操记录。
1,按照路径/etc/nginx/nginx.conf ,找到nginx.conf文件和以下相关代码。
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /usr/local/nginx/html;
index index.php index.html index.htm;
}
#error_page 404 /404.html;
2,在“#error_page 404 ”之前增加如下代码到server中。
location / {
try_files $uri $uri/ /index.php?$args;
}
# Add trailing slash to */wp-admin requests.
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
3,此时重启nginx.conf,会有以下提示。
[root@iZ6a3b4oz2y3pbZ ~]# service nginx restart
nginx: [emerg] duplicate location “/” in /etc/nginx/nginx.conf:50
nginx: configuration file /etc/nginx/nginx.conf test failed
勿慌。
4,这里是提示了有两个location,接下来将location命令合并,删除第二个“location / {”, 最终代码如下显示:
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /usr/local/nginx/html;
index index.php index.html index.htm;
}
#error_page 404 /404.html;
location / {
root /usr/local/nginx/html;
index index.php index.html index.htm;
try_files $uri $uri/ /index.php?$args;
}
# Add trailing slash to */wp-admin requests.
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
5,重新启动nginx,解决固定链接调整后链接的404问题。
[root@iZ6a3b4oz2y3pbZ ~]# service nginx restart
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Stopping nginx: [ OK ]
Starting nginx: [ OK ]
[root@iZ6a3b4oz2y3pbZ ~]#
完。
坤德拉 2020.04.01