想到别人是一种温馨,被别人想到是一种幸福!

nginx下的wordpress 3.0 rewrite规则

BLOGGY 7653浏览 0评论

最近在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规则

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (5)

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

    IMYAO.COM2010-11-26 21:51 回复
  2. 谢谢~用你的rewrite rule解决问题了。
    但是有一个疑惑,rewrite rule,单独放在一个文件里,然后在主配置文件中include,就不起作用。必须放在主配置文件中才起作用,这是为什么捏?

    如果想把rewrite rule单独放在一个文件里,应该怎么写捏?
    谢谢博主~~~ :lol:

    moioi2012-01-13 02:41 回复