Apache 2.4.27 mod_rewrite到cgi-bin失败

Oracle Linux 7 x64上的Apache 2.4.27。

我可以正确调用https://example.com/cgi-bin/helloworld.cgi
简单的Perl脚本返回“Hello,world via cgi-bin!”

我可以在https://example.com/helloworld.html正确调用静态内容
简单的HTML文件返回“Hello,world via html!”

我可以使用RewriteRule

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

我看到“Hello,world via html!”

但是,我不能使用RewriteRule:

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

这会导致400错误的请求。 那我怎么直接打电话呢?

如何在进入/cgi-bin时使我的RewriteRule工作? 这似乎是我的问题。 我尝试添加[L][L,PT]但没有任何帮助。

我不确定你的configuration有什么问题,你如何设置ScriptAlias

我已经用下面的configuration进行了testing,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> 

打开http://mysite.exmaple.com/test打开cgi脚&#x672C;