Web ホスト: Bluehost
SSL: ワイルドカード SSL
Rails: v4
Ruby: v2
Dev ドメイン: dev.mydomain.com
Pro ドメイン: www.mydomain.com
接続をテストしようとしていhttps://
ます。Rails アプリと開発アプリ内の apache .htaccess ファイルのみを変更しました。私はいくつかの問題に遭遇しましたが、どちらも最初の原因で発生すると考えています。
1) 最大の問題: http://dev.mydomain.com/whateverを使用すると、すべてが期待どおりに機能します。ただし、https://dev.mydomain.com/whateverを使用すると、本番モードで実行されます! ドメインは dev.mydomain.com ですが、Rails アプリは運用モードで実行されています。プリコンパイルされたアセットが提供されています...しかし、実際には、これらのファイルは開発アプリ ディレクトリに物理的に存在しません。それらは本番アプリのディレクトリにのみ存在します (完全に分離されています)。これは、URL が dev.mydomain.com/whatever を指しているにもかかわらず、実際にはすべてが mydomain.com/whatever を介して実行されていることを意味し、私の Rails アプリの本番アプリケーションが実行されています。どうしてだろう?!
2) .htaccess ファイル内で、次を使用して SSL 接続を強制しようとしました。
SSLOptions +StrictRequire
SSLRequireSSL
SSLRequire %{HTTP_HOST} eq "dev.mydomain.com"
ErrorDocument 403 https://dev.mydomain.com
ただし、Apache Authorization パラメーターを正しく設定したにもかかわらず、ログイン/パスの組み合わせを求めるプロンプトは表示されなくなりました。これは、SSL が使用されている場合、実際に使用されているディレクトリが開発フォルダーではないためだと思います (1 番目の問題を参照)。
これは Apache の設定エラーですか? httpd.conf には何もしていません。Web ホストが自動的に SSL 証明書をセットアップしました。
編集:「フル」.htaccess コード...
#SSLOptions +StrictRequire
#SSLRequireSSL
#SSLRequire %{HTTP_HOST} eq "dev.mydomain.com"
#ErrorDocument 403 https://dev.mydomain.com
#AuthUserFile "/home/account/.htpasswds/htuser"
#AuthGroupFile "/home/account/.htpasswds/htgroup"
#AuthName "Login Required"
#AuthType Basic
#require group owners administrators
# General Apache options
Options -Indexes
Options -MultiViews
Options +SymLinksIfOwnerMatch +ExecCGI
SetEnv TZ Canada/Eastern
Header unset ETag
FileETag None
AddDefaultCharset UTF-8
DefaultLanguage en
# Compress output
AddOutputFilterByType DEFLATE text/html text/plain text/css text/js text/javascript application/javascript application/xml text/xml image/gif image/jpeg image/jpg image/png image/vnd.microsoft.icon image/x-icon application/vnd.ms-fontobject font/ttf font/otf image/svg+xml
# User added MIME types
AddType video/x-flv .flv
AddType video/mp4 .m4v .mp4 .f4v
AddType video/ogg .ogv
AddType audio/ogg .oga
AddType image/jpeg .jpeg .jpg .jpe
AddType image/svg+xml .svg .svgz
AddType application/vnd.ms-fontobject .eot
AddType font/otf .otf
AddType font/ttf .ttf
# Set Expires info
ExpiresActive On
ExpiresByType image/gif "access plus 365 days"
ExpiresByType image/jpeg "access plus 365 days"
ExpiresByType image/png "access plus 365 days"
ExpiresByType image/x-icon "access plus 365 days"
ExpiresByType application/x-shockwave-flash "access plus 365 days"
ExpiresByType application/x-javascript "access plus 365 days"
ExpiresByType application/javascript "access plus 365 days"
ExpiresByType text/css "access plus 365 days"
ExpiresByType text/html "access plus 1 day"
RewriteEngine On
RewriteBase /
# Temporarily down for maintenance!
#RewriteCond %{HTTP:X-FORWARDED-FOR} !^xxx\.xxx\.xxx\.xxx
#RewriteCond %{REQUEST_URI} !\.(css|gif|ico|jpg|js|png|swf|txt)$
#RewriteRule .* - [R=503,L]
# Reroute all requests on dev site to https
#RewriteCond %{HTTPS} off
#RewriteCond %{HTTP_HOST} ^dev.mydomain.com$
#RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
PassengerEnabled on
PassengerResolveSymlinksInDocumentRoot on
RailsEnv development
RailsBaseURI /
PassengerAppRoot /home/account/rails_apps/dev.MyDomain
ErrorDocument 500 "<h2>Application error</h2>Rails application failed to start properly"
# Start CloudFlare:mydomain.com rewrite. Do not Edit
RewriteEngine On
RewriteCond %{HTTP_HOST} ^mydomain.com
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
# End CloudFlare rewrite.