doumu6997
doumu6997
2015-06-17 20:07

Roundcube - Nginx不会自动重定向到.php文件

已采纳

EDITED!

I set up a mail server on Debian 7 with Nginx, Postfix, Postfixadmin, Dovecot and Roundcube.

I tried to create an alias to use the SSL certificate of my domain example.org (of course, the domain here is an example) for the webmail. When accessing the following URL https://example.org/support/webmail/ - Nginx doesn't redirect to the index.php file and I get the following message 403 Forbidden. It only works if I manually add a .php file at the end of the URL.

Here's my configuration:

server {
    listen 80;
    server_name example.org;
    return 301 https://$server_name$request_uri;
}

server {
    listen 80;
    server_name www.example.org;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    ssl on;

    server_name example.org;
    root /var/www/soon;

    server_tokens off;

    ssl_certificate /etc/ssl/certs/example.org.certchain.crt;
    ssl_certificate_key /etc/ssl/private/example.org.key;

    ssl_session_cache shared:SSL:20m;
    ssl_session_timeout 10m;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256;
    ssl_prefer_server_ciphers on;

    # HSTS
    add_header Strict-Transport-Security max-age=15768000;

    location /support/webmail/ {
        alias /var/www/webmail/;
        autoindex off;

        location ~ \.php$ {
          include       /etc/nginx/fastcgi_params;
          # include       fastcgi_params;
          fastcgi_pass  unix:/var/run/php5-fpm.sock;
          fastcgi_index index.php;
          # fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          fastcgi_param SCRIPT_FILENAME $request_filename;
        }
    }
}

Thank you. :)

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • doulin8374 doulin8374 6年前

    Solved.

    Here's the configuration that works for me:

    server {
        listen 80;
        server_name example.org;
        return 301 https://$server_name$request_uri;
    }
    
    server {
        listen 80;
        server_name www.example.org;
        return 301 https://$server_name$request_uri;
    }
    
    server {
        listen 443 ssl;
        ssl on;
    
        server_name example.org;
        root /var/www/soon;
    
        server_tokens off;
    
        ssl_certificate /etc/ssl/certs/example.org.certchain.crt;
        ssl_certificate_key /etc/ssl/private/example.org.key;
    
        ssl_session_cache shared:SSL:20m;
        ssl_session_timeout 10m;
    
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256;
        ssl_prefer_server_ciphers on;
    
        # HSTS
        add_header Strict-Transport-Security max-age=15768000;
    
        location /support/webmail/ {
            alias /var/www/webmail/;
            autoindex off;
            index index.php;
    
            location ~ \.php$ {
              fastcgi_split_path_info ^(.+\.php)(/.+)$;
              include       /etc/nginx/fastcgi_params;
              fastcgi_pass  unix:/var/run/php5-fpm.sock;
              fastcgi_index index.php;
              fastcgi_param SCRIPT_FILENAME $request_filename;
            }
        }
    }
    
    点赞 评论 复制链接分享
  • douchuoliu4422 douchuoliu4422 6年前

    Add the

    location / {
        try_files $uri $uri/ index.php;
    }
    

    part in the config that isnt working, and turn off autoindex.

    点赞 评论 复制链接分享

为你推荐