最近将本站的 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;
版权属于:Angus
本文链接:https://blog.angustar.com/archives/wordpress-from-apache-to-nginx.html
所有原创文章采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。 您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。