wordpress 修改目录结构后配置url重定向使原链接仍正确访问

出于对志文工作室站内结构和内容的重构考虑,修改了一些栏目及目录结构,但是这样就使得已有文章的 URL 发生变化,那么如何在修改之后,让文章的原 URL 依然可以正确访问呢?
经过多次的查找学习与尝试,在此列举相关解决方法以供备忘与参考。

在此之前,志文工作室使用的方法是 nginx 下的 wordpress 简洁 URL rewrite 重写方法,代码如下:

location / {
 try_files $uri $uri/ /index.php?q=$uri&$args;
 }

添加了一条 rewrite 规则如下,希望使得旧的 url 依然可以访问,但是尝试此法不可行。

location / {
 rewrite ^/Category(.*)/(.*)\.html$ /a/$2.html last;
 try_files $uri $uri/ /index.php?q=$uri&$args;
 }

正确的做法:

后想起曾经配置过某站点的 phpinfo,而 wordpress 通过 phoinfo 方式可以用 index.php/XXX 的方式访问。于是增加了相关配置代码如下示例。

nginx 实现 phpinfo 支持:

location ~ \.php(.*)$ {
 fastcgi_pass 127.0.0.1:9000;
 fastcgi_index index.php;
 fastcgi_split_path_info ^(.+\.php)(.*)$;
 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 fastcgi_param PATH_INFO $fastcgi_path_info;
 fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
 #include fastcgi_params;
 include fcgi.conf;
 }

新的 rewrite 规则:

location / {
 rewrite ^/Category(.*)/(.*)\.html$ /index.php/a/$2.html last;
 try_files $uri $uri/ /index.php?q=$uri&$args;
 }

如此之后即可正确的访问了。

点赞 (0)

发表评论

电子邮件地址不会被公开。 必填项已用*标注