Configurando o redirecionamento SSL APENAS para o frontpage no Drupal?

2

Eu quero que os usuários que visitam meu site sejam redirecionados para a versão SSL quando acessarem o site assim

www.mysite.com

Mas quando eles acessam outros URLs, como ...

www.mysite.com/some
www.mysite.com/other
www.mysite.com/links

Isso vai para a versão normal.

Isto é o que eu tenho até agora que DOESNT funciona:

RewriteCond %{HTTP_HOST} ^mysite\.com$ [NC]
RewriteRule ^(.*)$ https://www.mysite.com/$1 [L,R=301]

Isso faz isso para TODAS as páginas.

    
por coderama 12.10.2009 / 12:16

2 respostas

4

Seu conjunto de regras atual está apenas verificando o HTTP_HOST . Para identificar solicitações para o seu frontpage, você precisa adicionar verificações para o REQUEST_URI :

RewriteCond %{HTTP_HOST} ^mysite\.com$ [NC]
RewriteCond %{REQUEST_URI} ^$ [NC, OR]
RewriteCond %{REQUEST_URI} ^/node$ [NC, OR]
RewriteCond %{REQUEST_URI} ^/yourFrontpageAlias$ [NC]
RewriteRule ^(.*)$ https://www.mysite.com/$1 [L,R=301]

Isso também verifica se há um URI de solicitação vazio, para o frontpage padrão do Drupal 'node' e um apelido que você possa ter dado. Este é apenas um exemplo não testado. Se você mudou seu frontpage padrão, você precisa substituir 'node' por aquele. Além disso, teste as situações de barra final - dependendo da sua configuração, é necessário permitir a correspondência entre essas também.

Provavelmente, você também deve adicionar uma verificação da HTTPS variável do servidor e pule a regra, se a solicitação for para https já. Ele conterá 'on' ou 'off' de acordo.

Se você quiser forçar outras páginas a não-SSL explícitas, você precisará adicionar uma regra redirecionando para não ssl para todos os outros casos também.

Além da página de documentação padrão mod_rewrite vinculada acima, você pode querer verificar os exemplos / explicações do Guia de regravação de URLs .

Observe também que, dependendo da sua configuração, talvez você não precise / queira verificar o HTTP_HOST , por exemplo, você pode ter hosts diferentes apontando para sua instância (agora ou no futuro - um exemplo comum seria 'www.mysite.com', que sua configuração atual ignoraria).

    
por 12.10.2009 / 12:38
1

Confira o módulo securepages do Drupal: link

Felicidades

    
por 12.10.2009 / 16:06