最近将本站的 Web 服务器从 Apache 切换到了 Nginx ,遇到了一个关于伪静态的小问题。

对于 WordPress 站点来说,固定链接主要是通过根目录下的.htaccess文件来控制,切换服务器后,Nginx 的 rewrite 格式和 Apache 的不同,需要修改。

目前本站已经从 WordPress 迁移至 Typecho。

这是 Apache 下的伪静态:

# BEGIN WordPress
# 在`BEGIN WordPress`与`END WordPress`之间的指令(行)是
# 动态生成的,只应被WordPress过滤器修改。
# 任何对标记之间的指令的修改都会被覆盖。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

本来准备使用宝塔的转换工具来转换成 Nginx 格式的伪静态,但无奈我转换过后出现了问题,访问xxx.com/wp-admin/不能进入后台,而必须使用xxx.com/wp-admin/index.php才能进入,这让我很苦恼,强迫症真的受不了啊哈哈哈哈🤣

经过查询,借鉴了其他 WordPress 站点的伪静态文件,居然成功解决了,不过还是不知道原因,先记录下来吧。

location / {
try_files $uri $uri/ /index.php?$args;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
最后修改:2021 年 02 月 20 日
如果觉得我的文章对你有用,请随意赞赏