最近在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文件即可。
#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;
}
参考:http://imcat.in/Nginx-wordpress-3-0-rewrite/