共计 917 个字符,预计需要花费 3 分钟才能阅读完成。
出于对志文工作室站内结构和内容的重构考虑,修改了一些栏目及目录结构,但是这样就使得已有文章的 URL 发生变化,那么如何在修改之后,让文章的原 URL 依然可以正确访问呢?
经过多次的查找学习与尝试,在此列举相关解决方法以供备忘与参考。
在此之前,志文工作室使用的方法是 nginx 下的 wordpress 简洁 URL rewrite 重写方法,代码如下:
location / { | |
try_files $uri $uri/ /index.php?q=$uri&$args; | |
} |
添加了一条 rewrite 规则如下,希望使得旧的 url 依然可以访问,但是尝试此法不可行。
location / { | |
rewrite ^/Category(.*)/(.*)\.html$ /a/\.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/\.html last; | |
try_files $uri $uri/ /index.php?q=$uri&$args; | |
} |
如此之后即可正确的访问了。
正文完
发表至: 网站建设
2013-08-07