Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache PERL Dancer2、cgi调度程序和辅助程序的uri__Apache_Perl_.htaccess_Cgi_Dancer - Fatal编程技术网

Apache PERL Dancer2、cgi调度程序和辅助程序的uri_

Apache PERL Dancer2、cgi调度程序和辅助程序的uri_,apache,perl,.htaccess,cgi,dancer,Apache,Perl,.htaccess,Cgi,Dancer,我有一个需要维护和改进的web界面,它是用一种简单的老CGI.pm方式编写的。该应用程序也没有使用模板系统。它由apache提供服务,如下所示: /var/www/vhost/myapp/cgi-bin/app.cgi /htdocs/css/styles.css /htdocs/js/script.js /var/www/vhost/myapp/cgi-bin/app.cgi /cgi-bin/d

我有一个需要维护和改进的web界面,它是用一种简单的老CGI.pm方式编写的。该应用程序也没有使用模板系统。它由apache提供服务,如下所示:

/var/www/vhost/myapp/cgi-bin/app.cgi
              /htdocs/css/styles.css
              /htdocs/js/script.js
/var/www/vhost/myapp/cgi-bin/app.cgi
                    /cgi-bin/dispatch.cgi (the one from Dancer2)
                    /htdocs/css/styles.css
                           /js/script.js
                           /dancer_public/...
                    /dancer2/lib/...
                            /views/...
                            /environement/...
为了给那个应用程序添加新页面,让我的生活更轻松,我想在旁边放一个Dancer或Dancer2应用程序,我在想这样的事情:

/var/www/vhost/myapp/cgi-bin/app.cgi
              /htdocs/css/styles.css
              /htdocs/js/script.js
/var/www/vhost/myapp/cgi-bin/app.cgi
                    /cgi-bin/dispatch.cgi (the one from Dancer2)
                    /htdocs/css/styles.css
                           /js/script.js
                           /dancer_public/...
                    /dancer2/lib/...
                            /views/...
                            /environement/...
在dispatcher中,我正在更改到达Dancer2 bin/app.psgi的路径。 我将以下.htaccess文件添加到htdocs目录中:

# BEGIN dancer application htaccess
  RewriteEngine On
  RewriteBase /v2
  RewriteRule ^/v2$ /cgi-bin/dispatch.cgi [L]
  RewriteCond %{SCRIPT_FILENAME} !-d
  RewriteCond %{SCRIPT_FILENAME} !-f
  RewriteRule v2/(.*) /cgi-bin/dispatch.cgi/$1 [L]
# END dancer application htaccess
通过这样做

  • 访问example.com/cgi-bin/app.cgi显示旧应用程序 果然
  • 访问example.com/v2向我展示舞者 应用程序主页,默认一个,没有css,这是我移动时需要的 公共目录,以及其他一些修改
既然你已经准备好了,这就是我的问题所在, 从v2到dancer应用程序的重定向工作得非常好,但是,为了保持一致性,我希望有用于从v2创建url的uri\u,但它使用脚本名称作为基本url,以显示问题,当我为('/mypage')创建url:uri\u时

  • 我想要那个url:example.com/v2/mypage

  • 但是我有url example.com/cgi-bin/dispatch.cgi/mypage

SCRIPT_NAME环境变量包含cgi bin/dispatch.cgi,我有一个可怕的攻击,正在工作,但显然不是解决方案,我可以通过在cgi dispatcher的BEGIN块中将SCRIPT_NAME强制为/v2来实现我的预期行为。 如果有人认为这是一个干净的解决方案,这将是一个很大的帮助


谢谢,我对D1也有同样的问题

$ENV{SCRIPT_NAME}=''

inside dispatch.fcgi帮助我