![](/img/trans.png)
[英]Perl Dancer2 Deployment with FastCGI + Apache2.4 on Windows 7
[英]PERL Dancer2, cgi dispatcher and uri_for helper
我有一个需要维护和改进的Web界面,它以普通的旧CGI.pm方式编写。 该应用程序也没有使用模板系统。 它由apache服务,就像这样:
/var/www/vhost/myapp/cgi-bin/app.cgi
/htdocs/css/styles.css
/htdocs/js/script.js
为了向该应用程序添加新页面,并使我的生活更轻松,我想在它旁边托管一个Dancer或Dancer2应用程序,我在想这样的事情:
/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/...
在调度程序中,我正在更改到达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
通过这样做,
现在您已经设置好了,这是我遇到的问题,从v2到舞者应用程序的重定向确实运行良好,但是,为了保持一致,我希望uri_for从v2创建url,但是当我创建URL时,使用SCRIPT_NAME作为基本URL来显示问题:uri_for('/ mypage'),
我想拥有该网址:example.com/v2/mypage,
但是我有URL example.com/cgi-bin/dispatch.cgi/mypage
SCRIPT_NAME环境变量包含cgi-bin / dispatch.cgi,我遇到了一个可怕的问题,这是可行的,但显然不是解决方案,我可以通过在BEGIN块中在cgi调度程序中将SCRIPT_NAME强制为/ v2来达到预期的行为。 如果有人将其作为一个干净的解决方案,那将有很大的帮助!
谢谢
D1也有同样的问题。
$ ENV {SCRIPT_NAME} ='';
在dispatch.fcgi内部可以帮助我。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.