本文最后更新于 2024-08-29,文章内容可能已经过时。

跨域问题

首先了解一下跨域问题。 在访问www.jampang.cn和jampang.cn的情况下,实际上是同一域名,不同二级域名 所以正常情况下,typecho的后台设置每次都会提示设置域名与当前域名不一致。 | URL | 说明 | 是否允许通讯 | | :----------------------------------------------: | :--------------------: | :-------------------------------------------: | | http(s)://jampang.cn
http(s)://www.jampang.cn | 同一域名,不同二级域名 | 不允许,(cookie如果未设置Path为“/”也不允许) |

解决方案

在Nginx的站点配置文件中加入代码

 if ($host != 'jampang.cn' ) {
        rewrite ^/(.*)$ https://jampang.cn/$1 permanent;
    }

部分代码参考

server
{
    listen 80;
	listen 443 ssl http2;
    server_name jampang.cn www.jampang.cn;
    index index.php index.html index.htm default.php default.htm default.html;
    root /www/wwwroot/jampang.cn;
    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    #HTTP_TO_HTTPS_START
    if ($host != 'jampang.cn' ) {
        rewrite ^/(.*)$ https://jampang.cn/$1 permanent;
    }
    if ($server_port !~ 443){
        rewrite ^(/.*)$ https://$host$1 permanent;
    }