通过https访问站点会导致文件夹结构显示在浏览器中,而不是应用程序

时间:2011-12-04 06:02:24

标签: ruby-on-rails-3 ssl ubuntu https apache2

我有一个使用以下堆栈运行的rails 3应用程序:

ubuntu lucid lynx,apache2,亚马逊EC2上的乘客

通过http访问时,页面加载,网站完全没有问题。

然后我在网络服务器上安装了有效的SSL证书。当我尝试通过https访问相同的URL时,看起来乘客没有被激活。相反,在浏览器中,渲染rails应用程序的文件夹结构。

我需要对Apache和/或Passenger进行哪些配置更改或修改,以便https URL返回与相应http url相同的内容?

1 个答案:

答案 0 :(得分:0)

你需要这样的东西:

<VirtualHost *:80>
      ServerName orders.xxx.com
      DocumentRoot "/var/www/html/ps-main/current/public"
      CustomLog /var/log/apache2/orders common 
      RewriteEngine On
      RewriteCond %{HTTPS} off
      RewriteRule (.*) https://orders.xxx.com%{REQUEST_URI}
      NameVirtualHost *:443
      RailsEnv production 
      <Directory /var/www/html/ps-main>
         AllowOverride all            
         Options -MultiViews         
      </Directory>
   </VirtualHost>
<VirtualHost *:443>
        SSLEngine on
        CustomLog /var/log/apache2/orders common
        ServerAdmin webmaster@xxx.com.com
        ServerName orders.xxx.com
        SSLCertificateFile /etc/ssl/cert.crt
        SSLCertificateKeyFile /etc/ssl/server.key
        SSLCertificateChainFile /etc/ssl/intermediate.pem
#        SSLProtocol all
        SSLCipherSuite HIGH:MEDIUM
        DocumentRoot /var/www/html/ps-main/current/public
        <Directory /var/www/html/ps-main/current/public>
                Options -MultiViews
                AllowOverride all
        </Directory>
</VirtualHost>

这会将所有http流量重定向到https。如果这不是您所需要的,请删除重定向。