apache2.4 mod_rewrite exclui o alias específico directroy / uri

6

Eu tenho a seguinte configuração em um dos meus vhosts:

...<VirtualHost *:80>
    ServerName cloud.domain.de
    ServerAdmin [email protected]
    ServerSignature Off

    Alias "/.well-known/acme-challenge" "/var/www/domain.de/vh-www/htdocs/public/.well-known/acme-challenge"

    <Directory "/var/www/domain.de/vh-www/htdocs/public/.well-known/acme-challenge">
      Require all granted
      ForceType 'text/plain'
    </Directory>

    <ifmodule mod_rewrite.c>
      RewriteEngine On
      RewriteCond %(REQUEST_URI) !/\.well\-known/acme\-challenge/?.*
      RewriteCond %{HTTPS} off
      # RewriteRule ^\.well-known/acme-challenge/([A-Za-z0-9-]+)/?$ - [L]
      RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    </ifmodule>...

O que eu quero alcançar é que o mod_rewrite não reescreva a URL quando o url http://cloud.domain.de/.well-known/acme-challenge/ for acessado.

Eu já tentei abordagens diferentes, sendo uma delas a RewriteRule comentada acima, mas nada parece funcionar: o servidor a reescreve a https toda vez.

Quando desativo a reescrita para fins de teste, posso acessar o alias URL bem ...

Como faço para que o URL específico não seja reescrito?

    
por FleBeling 26.11.2015 / 12:16

3 respostas

9

Assim:

<ifmodule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_URI} !^/\.well\-known/acme\-challenge/
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</ifmodule>

Se o URI corresponder a start with /.well-known/acme-challenge/ , o pedido não será redirecionado

    
por 26.11.2015 / 12:22
1

@mark Versão correta da variante "mais curta e mais robusta":

RewriteCond %{REQUEST_URI} ^/\.well\-known
RewriteRule . - [L]
    
por 03.03.2017 / 16:02
0

IMHO mais curto e mais robusto:

RewriteCond %{REQUEST_URI} ^\.well\-known
RewriteRule - [L]

você pode adicionar / acme-challenge / eventualmente, mas se quiser depurá-lo com um arquivo arbitrário, como ./well-known/test, esta solução funciona melhor

o que isso realmente faz: olha se o pedido começa com .bem conhecido, nesse caso não faz nada (o significado de -) e torna a última regra [L]

    
por 31.01.2017 / 10:56