簡體   English   中英

Rails 3 +乘客+ Apache強制WWW和SSL

[英]Rails 3 + Passenger + Apache force WWW and SSL

我試圖將所有流量從非SSL重定向到SSL並強制WWW,最后將舊的子域重定向到Rails 3應用程序的主域。

這是我的目標:

http://domain.com -> https://www.domain.com
http://www.domain.com -> https://www.domain.com

http://api.domain.com -> https://api.domain.com

http://old.domain.com -> https://www.domain.com

我正在嘗試從看起來像這樣的域的apache配置文件中實現這一點:

<VirtualHost *:80>
    ServerName www.domain.com
    ServerAlias api.domain.com
    RewriteEngine On
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=permanent]
</VirtualHost>

<VirtualHost *:80>
    ServerName domain.com
    ServerAlias old.domain.com
    RedirectMatch permanent ^/(.*) http://www.domain.com/$1
</VirtualHost>

<VirtualHost *:443>
    ServerName www.domain.com
    ServerAlias api.domain.com
    DocumentRoot /home/deploy/domain/public
    RailsEnv production
    <Directory /home/deploy/domain/public>
        Allow from all
        Options -MultiViews
    </Directory>
    SSLEngine On
    SSLOptions +StrictRequire
    SSLCertificateFile /ssldomain_com.crt
    SSLCertificateKeyFile /ssl/privateKey.key
    SSLCertificateChainFile /ssl/domain_com.ca-bundle
</VirtualHost>

由於某種原因,SSL很好,但是沒有重定向發生。 Rails應用程序可在所有4個選項上運行:

https://domain.com
https://www.domain.com
https://api.domain.com
https://old.domain.com

知道如何清除apache配置文件以使其正常工作嗎?

較為詳細,但您需要做的只是:

<VirtualHost *:80>
  ServerName www.domain.com
  ServerAlias old.domain.com
  ServerAlias domain.com
  Redirect / https://www.domain.com/
</VirtualHost>

<VirtualHost *:80>
  ServerName api.domain.com
  Redirect / https://api.domain.com/
</VirtualHost>

然后,您上面在SSL虛擬主機中擁有的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM