Apache 2.4.27 mod_rewrite para cgi-bin falha

2

Apache 2.4.27 no Oracle Linux 7 x64.

Eu posso fazer chamadas adequadas para https://example.com/cgi-bin/helloworld.cgi .
O script Perl simples retorna "Hello, world via cgi-bin!"

Eu posso fazer chamadas adequadas para conteúdo estático em https://example.com/helloworld.html
O arquivo HTML simples retorna "Hello, world via html!"

Eu posso usar RewriteRule como:

RewriteRule "^/test" "/helloworld.html"

Eu vejo "Olá, mundo via html!"

No entanto, não posso usar o RewriteRule como:

RewriteRule "^/test" "/cgi-bin/helloworld.cgi"

Isso resulta em uma solicitação incorreta de 400. Como é que eu posso chamar isso diretamente?

Como faço para que meu RewriteRule funcione ao ir para /cgi-bin ? Esse parece ser o meu problema. Eu tentei adicionar [L] e [L,PT] , mas não ajuda.

    
por AaronG 12.10.2017 / 22:24

1 resposta

1

Não sei o que pode estar errado na sua configuração. Como você tem ScriptAlias env configurado?

Eu testei com a configuração abaixo e tudo parece estar bem no Apache 2.4.10:

<VirtualHost 10.44.0.3:80>

    DocumentRoot "/vat/www/mysite"
    ServerName mysite.example.com
    ErrorLog "/var/log/apache2/mysite.example.com-error_log"
    CustomLog "/var/log/apache2/mysite.example.com-access_log" common

    ScriptAlias "/cgi-bin/" "/var/www/mysite/cgi-bin/"

    <Directory "/var/www/mysite">
          Require all granted
          Options Indexes FollowSymLinks MultiViews
          AllowOverride all
    </Directory>


    <Directory "/var/www/mysite/cgi-bin">
          Options +ExecCGI
          AddHandler cgi-script .cgi
    </Directory>


    RewriteEngine On
    RewriteRule "^/test" "/cgi-bin/test.cgi"

</VirtualHost>

abrindo o link abre o script cgi

    
por 13.10.2017 / 01:39