• StatusNet在Nginx下的rewrite规则

    StatusNet在Nginx下的rewrite规则。假设StatusNet装在abc.creke.net的sn目录下,访问地址为abc.creke.net/sn/,则其在Nginx下的rewrite规则如下:

    #StatusNet
    location /sn
    {
            try_files $uri $uri/ @statusnet;
    }
    location @statusnet
    {
            rewrite ^/sn/(.*)$ /sn/index.php?p=$1 last;
    }

    将其放在“server{}”块中靠前位置即可。

    如果不启用fancy url,这时会发现登录页面404,因为类似“abc.creke.net/sn/index.php/main/login”这类地址nginx不认为是需要交到php处理的地址。这时有两种解决方法。

    第一种,最简单的就是在config.php中加上开启fancy url的语句,同时按照上面说的配好rewrite:

    $config['site']['fancy'] = true;

    第二种,就是将上面的rewrite中的rewrite规则换成:

    rewrite ^/sn/index\.php\(.*)$ /sn/index.php?p=$1 last;

    好吧,除了我,谁那么无聊用第二种啊……用第一种呗。

    分类: 所谓技术 | 标签: ,,,