2

これが一般的なトピックであることは承知していますが、Web を検索して見つけた解決策を利用して、解決するために最善を尽くしました。

サブドメイン secure.mysite.com にリンクされた証明書があり、次のことを達成したいと考えています。

  1. 次のパスとそのサブページで SSL を強制する必要があります:
    http://mysite.com/services[/.../...] => https://secure.mysite.com/services[/...] /...]
    http://mysite.com/login[/.../...] => https://secure.mysite.com/login[/.../...]
    http:/ /mysite.com/member[/.../...] => https://secure.mysite.com/member[/.../...]
    http://mysite.com/admin[/ .../...] => https://secure.mysite.com/admin

  2. 安全でないすべてのパス (上記以外のすべてのパス) に www を追加したい

  3. すべての安全なパス (上記のすべて) で www を削除したい

以下は、私が .htaccess-file に入れたものですが、成功しませんでした:

# force HTTPS
RewriteCond %{HTTPS} =off
RewriteRule ^(services|login|member|admin)$ https://secure.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# force HTTP
RewriteCond %{HTTPS} =on
RewriteRule !^(services|login|member|admin)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# remove www from host when HTTPS
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteCond %{HTTPS} =on
RewriteRule ^ http%2://%1%{REQUEST_URI} [L,R=301]

# add www from host when HTTP
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTPS} =off
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

# Zend redirect logic
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
4

1 に答える 1

2

いくつかの修正を加えて:

RewriteEngine On

# force HTTPS
RewriteCond %{HTTPS} =off
RewriteRule ^(services|login|member|admin) https://secure.mysite.com%{REQUEST_URI} [L,R=301]

# force HTTP
RewriteCond %{HTTPS} =on
RewriteRule !^(services|login|member|admin) http://mysite.com%{REQUEST_URI} [L,R=301]

# remove www from host when HTTPS
RewriteCond %{HTTPS} =on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301]

# add www from host when HTTP
RewriteCond %{HTTPS} =off
RewriteCond %{HTTP_HOST} !^(www|secure)\. [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
于 2013-10-10T10:23:40.323 に答える