来谈一谈 Typecho 的伪静态 Rewrite 问题
自从重新装了 LNMP 之后
我的伪静态就一直没有整好
创建虚拟机的时候让选伪静态规则 自带的有 typecho.conf
选上了一切还好 一切还正常
我加上 301 跳转之后 也还好
但当我在 tp 后台开启永久链接后(隐藏 index.php ) 问题就出现了
输入 noisky.cn
跳转到 www.noisky.cn
的时候 第一次会出现 https://www.noisky.cn/index.php
只有第一次会出现
强迫症的我表示实在不能忍
最后发现我的 301 跳转代码和 typecho.conf
有冲突 不管我怎么调都会出现或多或少的问题
今天在 google 上发现了一个方法很好了解决了这个问题
有大佬说可以不用 typecho 自带的伪静态
直接在网站 conf 上使用try_files $uri $uri/ /index.php?$args;
即可
我加上了之后 确实很好用 和 301 代码没有一点冲突
可是我发现 登陆后台进不去了 提示 301 错误
让大佬指点下 发现我网站的 conf
少了一句fastcgi_split_path_info ^(.+\.php)(/.+)$;
加上之后service nginx restart
重启 nginx
问题终于完美解决
完美跳转
后台正常~
完结撒花~
最后贴出来我的 配置文件 供大伙参考
try_files $uri $uri/ /index.php?$args;
root /xxx/xxx/www.noisky.cn;
if ($ssl_protocol = "") { return 301 https://$host$request_uri; } # https 跳转
if ($host != www.noisky.cn) {
rewrite ^/(.*)$ $scheme://www.noisky.cn/$1 permanent; # 301 跳转
}
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
发表评论