.htaccess https redireciona melhor método

1

Eu pesquisei todos os redirecionamentos postados para comprar outros e não consigo encontrar a resposta para o meu problema.

Eu tenho um site com mais de 3000 páginas e estamos recebendo problemas de duplicação no google.

Queremos manter tudo no diretório pai como http, exceto nossa página contact.php e login.php.

Temos então 3 pastas que devem ser protegidas. admin, clientes, clientes

Eu tentei usar o seguinte código em arquivos .htaccess separados para cada pasta, mas continuo tendo um conflito quando tento e ainda estou tentando encontrar uma boa solução para o diretório inicial.

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} admin
RewriteRule ^(.*)$ https://www.website.com/$1 [R,L]

Qualquer ajuda seria muito apreciada.

    
por Douglas Cottrell 11.04.2012 / 23:52

2 respostas

2

Não tente controlar o protocolo arquivo por arquivo. O que você precisa é de duas árvores de diretório distintas, uma para http e outra para https, embora a última possa ser um subdiretório da primeira. Depois de ter a estrutura apropriada, você redireciona qualquer chamada http para uma página ou diretório seguro para o local apropriado na árvore https.

    
por 12.04.2012 / 00:55
0

Eu usaria uma ideia de lista negra / lista de desbloqueio, dividida em dois blocos diretivos separados.

Para todos os pedidos para HTTP-80, correspondem aos diretórios ou caminhos que DEVEM ser HTTPS e os redirecionam, todo o restante passará e será exibido corretamente. Este código assume que eles são diretórios de nível superior.

Para suas solicitações HTTPS-443, faça o oposto. Se as solicitações NÃO corresponderem às listas permitidas, redirecione novamente para HTTP

RewriteEngine On

# redirect to https where appropriate
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} ^/(admin|clients|customers) [OR]
RewriteCond %{SCRIPT_FILENAME} (contact.php|login.php)
RewriteRule ^(.*)$ https://test.dev/$1 [R=301,L]

# handle SSL requests, flick anything that doesn't match allowed back to non-SSL 
RewriteCond %{SERVER_PORT} 443
RewriteCond %{REQUEST_URI} !^/(admin|clients|customers)
RewriteCond %{SCRIPT_FILENAME} !(contact.php|login.php)
RewriteRule ^(.*)$ http://test.dev/$1 [R=301,L]
    
por 12.04.2012 / 07:46