doumu6997 2015-06-17 20:07
浏览 75
已采纳

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 2015-06-18 15:46
    关注

    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;
            }
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了