How to:Nginx rewrite rules for WordPress Multi-Site

在WordPress 3.0中,如果你想启用Multi-Site的功能,是需要对WebServer做一些必要的rewrite rules设置的。如果你用的是Apache,只需要把安装WordPress时生成的rewrite rules复制到Apache的配置文件即可。如果是使用Nginx作为WebServer,可以参考下面的rewrite规则,经过某的测试基本没问题。

rewrite ^.*/files/(.*)$ /wp-includes/ms-files.php?file=$1 last;
rewrite ^(.*)?(/wp-(content|admin|includes)/.*) $2 last;
rewrite ^(.*)?(/wp-.*\.php)$ $2 last;

location / {
index index.php;
if (!-e $request_filename) {
rewrite ^.+?(/wp-.*) $1 last;
rewrite ^.+?(/.*\.php)$ $1 last;
rewrite ^ /index.php last;
}
}

需要完善的地方有待改进...

Tags: Nginx

4 Responses

  1. 智慧帆 | #1 June 20, 2010 at 21:43

    许久没有来逛了!!

    [ Reply | Quote ]
  2. 无法通过 | #2 December 29, 2010 at 12:17

    我按照你的所提供的规则添加到conf文件中,无法通过。找不到文件目录。

    我采用multisite的文件夹方式来安装的。

    希望你能提供帮助。谢谢!

    [ Reply | Quote ]
  3. bluer | #3 December 29, 2010 at 13:54

    你是不是没设置好documentRoot?需要帮助可以直接加我GT: lbluer#gmail.com

    [ Reply | Quote ]
  4. iwangbin | #4 March 4, 2011 at 11:19

    谢谢你的文章,我成功配好了多个站点。

    [ Reply | Quote ]

Leave a Reply