Estamos usando o plug-in mod_auth_openid para fornecer suporte OpenID para parte do nosso site. Funciona muito bem, mas estamos nos deparando com uma daquelas condições "Faça isso, exceto quando" e não tenho certeza de onde estou errando.
Existem alguns URIs que não queremos que sejam aplicados. Superficialmente, isso é bastante direto.
<Directory "/opt/homeapp/web">
AuthType openid-connect
SetEnvIf Request_URI "^/(callbacks.php.*)$" allow
require claim hd:example.com
require env allow
require valid-user
</Directory>
Isso funciona bem para coisas que atingem o callbacks.php
arquivo e qualquer outro arquivo real.
Onde entra o meu problema, é tentar corresponder as rotas do Symfony. Se a solicitação recebida for /combobulator/newForm
, parece que Request_URI
deveria ser igual a /combobulator/newForm
. No entanto, este definitivamente não é o caso.
SetEnvIf Request_URI "^/combobulator/(.*)" allow
SetEnvIf Request_URI "combobulator/(.*)$" allow
SetEnvIf Request_URI "combobulator" allow
SetEnvIf Request_URI "(combobulator)" allow
Todos esses não fazem a coisa.
Como você combina rotas com SetEnvIf
, ou isso é possível?
Fazendo algumas investigações sobre como o fluxo de dados funciona, implementei um pouco de um equipamento de teste para ver o que
Request_URI
está neste estágio de execução.Em seguida, usando uma
LogFormat
instrução personalizada usando%{check_uri}e
nele, consegui mostrar queRequest_URI
, neste estágio, a maioria das rotas éindex.php
.Atualmente , o método SetEnvIf usado para arquivos não funcionará para rotas . Algum outro método precisará ser usado.
Isso resolveu um problema para mim com a rota wp-json api A
Require env REDIRECT_noauth
exclusão de um sub-url protegido não funciona no Apache 2.4?