Hi, Le mercredi 10 mars 2010 à 14:49 +0100, icovnik a écrit :
Hi,
I'm trying to set up a simple app, but unfortunately, it should run as old CGI script under Apache on Linux. The CGI script is reachable via http://server/appdir/script.cgi. I have set appdir/.htaccess like this:
RewriteEngine On RewriteRule ^(.*)$ script.cgi
The RewriteRule should be probably something like this:
RewriteRule ^(.*)$ script.cgi?$1
Not really, the rewrite rule should not path the path_info as a QUERY_STRING.
[...] Please assume that I am unable to run the application under FCGI or mod_perl. The Dancer's http server works but I need to make it work on our server... so... as plain CGI.
What you want to deploy is supported by Dancer with Plack, that works, and I'm going to give you a working example (which will then be added to Dancer::Deployment). This is how I deploy my test applications: I have a Virtualhost that matches *:80 which provides a bucnh of Dancer apps served within their own directories. This way I can access "AppFoo" with http://localhost/AppFoo/ (If understand you well, this is what you want). The following example provides /App1/ served by CGI and /App2/ served by FastCGI. Here is all that you need to get this working: <VirtualHost *:80> ServerName localhost # This is the root directory of all the apps DocumentRoot "/PATH/TO/YOUR/ROOTDIR" RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f <Directory "/PATH/TO/YOUR/ROOTDIR"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all AddHandler cgi-script .cgi AddHandler fastcgi-script .fcgi </Directory> RewriteRule /App1(.*)$ /App1/public/dispatch.cgi$1 [QSA,L] RewriteRule /App2(.*)$ /App2/public/dispatch.fcgi$1 [QSA,L] </VirtualHost> Please note that the RewriteRule does not use a question mark, the rewritten path should look (internally) like the following: /App1/foo/bar => /App1/public/dispatch.cgi/foo/bar request->path will then be - as you can expect - "/foo/bar" This works perfectly well on my box, it should work on yours ;) Good luck. -- Alexis Sukrieh