如何正确添加webmail配置到Nginx

时间:2016-05-01 11:44:53

标签: php nginx drupal

我试图在一台同时托管Drupal网站的服务器上运行Rainloop webmail。

我使用Perusio的Nginx配置为Drupal(https://github.com/perusio/drupal-with-nginx)。

我基本上只需要添加一个位置来处理Rainloop的路径,以便可以通过https://example.com/rainloop访问网络邮件。

我在drupal.conf中的默认位置块之外添加了以下内容:

## Webmail handling
# serve static files
location ~ ^/rainloop/(images|javascript|js|css|flash|media|static)/  {
    rewrite        ^ https://$server_name$request_uri? permanent;
    root /usr/share/nginx/;
    expires 30d;
}

location /rainloop {
    root /usr/share/nginx/;
    index index.html index.htm index.php;
    autoindex on;
    autoindex_exact_size off;
    autoindex_localtime on;
}

location ^~ /rainloop/data {
    deny all;
}

即使路径正确,它也会返回404。我怀疑它在配置结束时与其中一个或两个位置有关:

location ^~ /index.php {
    if ( $args ~* "^q=(?<query_value>.*)" ) {
        rewrite ^/index.php$ $scheme://$host/?q=$query_value? last;
    }
    return 404;
}

## Any other attempt to access PHP files returns a 404.
location ~* ^.+\.php$ {
    return 404;
}

如何对rainloop目录的这些404规则进行例外处理?

0 个答案:

没有答案