0

example.com というサイトがあります。私がやりたいことは、すべてのページで www を強制し、1 つのページで https を強制し、他のすべてのページで http を強制することです。

次の .htaccess コードを使用して、すべての http トラフィックを www にリダイレクトしています。

#Redirect to www
RewriteCond %{HTTP_HOST} ^example.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

私の「フォーム」ページにSSLを設定するには、次のようにします。

#Force SSL on a specific directory
RewriteCond %{ENV:HTTPS} !on [NC]
RewriteCond %{REQUEST_URI} form
RewriteRule ^(.*)$ https://www.example.com/form/$1 [R,L]

問題は、 https://example.com/をヒットしても www ( https://www.example.com ) にリダイレクトされず、特に http と www ( http://www.example.com )にリダイレクトされないことです。したいように。私はこれを試しました:

#Redirect SSL to www
RewriteCond %{ENV:HTTPS} on [NC]
RewriteRule ^(.*)$ http://www.example.com$1 [R=permanent,L]

しかし、それは本当にばかげた試みであり、うまくいきませんでした。3 つすべてを一度に達成するにはどうすればよいですか?

4

1 に答える 1

0

これを試して:

# Handle nonSSL
RewriteCond %{HTTPS} on 
RewriteRule !^/?form(/|$) http://www.ravicti.com%{REQUEST_URI} [L,R=301]

# Handle SSL 
RewriteCond %{HTTPS} off 
RewriteRule ^/?form(/|$) https://www.ravicti.com%{REQUEST_URI} [L,R=301]    

# Add the missing www for both HTTP and HTTPS
RewriteCond %{HTTP_HOST} ^ravicti.com$ [NC]
RewriteCond %{HTTPS}:s (on:(s)|off:s)
RewriteRule (.*) http%2://www.ravicti.com%{REQUEST_URI} [L,R=301]
于 2013-02-06T22:58:12.417 に答える