自由的风's Archivers

From 自由的风 on 2010-10-17 18:48:46

nginx下的wordpress 3.0 rewrite规则

最近在wordpress中启用了多站点的功能,测试都还比较正常。但在文章中插入图片时,就碰到了问题。依照之前的安装设定,其中一个步骤是在wp-content目录下建立blogs.dir目录,用来存放用户上传的文件。在文章中插入图片时,图片是可以正常上传到相应目录下,如:wp-content/blogs.dir/blogid/files/2010/10/image.png,其中blogid是每个不同blog的编号。但在文章中却没有办法正常显示,原因就是由于我用的服务器环境是nginx,所以要更新下 wordpress 3.0 rewrite的规则。

适用于apache的规则如下:
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# uploaded files
RewriteRule ^files/(.+) wp-includes/ms-files.php?file=$1 [L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule . index.php [L]
写到网站根目录下的.htaccess文件即可。

nginx下面则需要做些修改,规则如下:


#on server block
##necessary if using a multi-site plugin
server_name_in_redirect off;
##necessary if running Nginx behind a reverse-proxy
port_in_redirect off;

rewrite ^.*/files/(.*)$ /wp-includes/ms-files.php?file=$1 last;
if (!-e $request_filename) {
rewrite ^.+?(/wp-.*) $1 last;
rewrite ^.+?(/.*.php)$ $1 last;
rewrite ^ /index.php last;
}
写入nginx的站点配置文件,并重启nginx服务器即可。

参考:http://imcat.in/nginx-wordpress-3-0-rewrite/

查看完整版本: nginx下的wordpress 3.0 rewrite规则

From IMYAO.COM on 2010-11-26 21:51:21

哥儿你太牛逼了,,正好解决了我的问题,,

From 自由的风 on 2010-11-26 23:17:45

呵呵,那就好。

From moioi on 2012-01-13 02:41:41

谢谢~用你的rewrite rule解决问题了。 但是有一个疑惑,rewrite rule,单独放在一个文件里,然后在主配置文件中include,就不起作用。必须放在主配置文件中才起作用,这是为什么捏? 如果想把rewrite rule单独放在一个文件里,应该怎么写捏? 谢谢博主~~~ :lol:

From wordpress enable network subdomain nginx rewrite rule - wordpress公园 on 2012-01-13 02:42:54

[...] rule出了问题。 经过多番搜索,解决方案如下(参考链接): 在本文第一个配置文件nginx.conf中的#include wordpress.conf 用 123456rewrite [...]

Tags: Nginx, WordPress, 多站点


©自由的风