Regex de exceção do Apache MatchRedirect

4

Eu quero redirecionar qualquer URL que seja Https e não comece com "system_" para a mesma URL com http.

por exapmle para este URL:

https://exsite.tld/some/thing/that/not/start/with/pattern

para:

http://exsite.tld/some/thing/that/not/start/with/pattern

mas este URL:

https://exsite.tld/system_aas3f4

Não deve redirecionar.

Eu tento:

  RedirectMatch  ^/?((?!(system_)).*)  http://exsite.tld/$1

mas não vai funcionar. Eu não sei qual é o problema.

    
por Arash Mousavi 31.07.2013 / 13:04

1 resposta

4

Use reescrever. Tente algo como

RewriteEngine on
RewriteCond %{HTTPS} =on
RewriteCond %{REQUEST_URI} !^/system_
RewriteRule ^/(.*) http://exsite.tld/$1 [R=301,L]

deve fazê-lo. Por favor, teste antes de implementar em ambiente ao vivo.

O que essas regras definem é: 1. habilite o mecanismo de reescrita, 2. verifique se o HTTPS está ativado, 3. verifique se o caminho do URI não inicia com system_ . Se ambas as duas condições acima forem verdadeiras, reescreva a versão http do seu domínio para todos os URIs restantes.

    
por 02.08.2013 / 16:37