我试图在一台同时托管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规则进行例外处理?