Please do not reply directly to this email. All additional comments should be made in the comments box of this bug report. https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=199152 Summary: url(-relative=>1) is broken in CGI.pm Product: Red Hat Web Application Stack Version: LAMPv1 Platform: All OS/Version: Linux Status: NEW Severity: normal Priority: normal Component: perl AssignedTo: jvdias@xxxxxxxxxx ReportedBy: jvdias@xxxxxxxxxx QAContact: gozen@xxxxxxxxxx CC: fedora-perl-devel-list@xxxxxxxxxx,jorton@xxxxxxxxxx +++ This bug was initially created as a clone of Bug #188441 +++ Description of problem: url(-relative) no longer returns the original relative path before rewrites. This used to work in FC4. Version-Release number of selected component (if applicable): perl-5.8.8-4 How reproducible: 100% Steps to Reproduce: 1. Set up a redirect in your .htaccess file such as: RewriteEngine On RewriteBase / RewriteRule ^testabc.cgi$ test.cgi 2. Create a test perl script, test.cgi such as: #!/usr/bin/perl use CGI qw/:standard -no_xhtml/; print "Content-type: text/plain\n\n"; print url(-relative=>1), "\n"; print url(-absolute=>1), "\n"; 3. Look at the web page /testabc.cgi Actual results: test.cgi /testabc.cgi Expected results: testabc.cgi /testabc.cgi Additional info: -- Additional comment from jvdias@xxxxxxxxxx on 2006-04-12 17:16 EST -- Hmmm, this does not seem to be a problem with perl's CGI:: module - I put your rewrite rule in /etc/httpd/conf/httpd.conf's /var/www/cgi-bin/ 'Directory' entry, from the standard config from a clean install of httpd-2.2.0-6 , so it now reads: --- <Directory "/var/www/cgi-bin"> AllowOverride None Options FollowSymLinks Order allow,deny Allow from all RewriteEngine On RewriteBase /cgi-bin RewriteRule ^testabc.cgi$ test.cgi </Directory> --- NOTE: before the server would process the rewrite rule, it insisted that the FollowSymLinks or FollowSymLinks owner option be specified - without one of these options enabled, rewrite rules will be ignored. Then your example test.cgi script works as expected, producing the output: testabc.cgi /testabc.cgi Perhaps your http server is not loading your .htaccess file correctly / doesn't allow the FollowSymLinks or RewriteRule options ? I'm CC-ing the httpd maintainer on this - perhaps he could shed some light on why the rewrite rule might not be taking effect. If the rewrite rule is correctly applied, the perl CGI module seems to have no problem with url(-relative=>1) / url(-absolute=>1) . -- Additional comment from jvdias@xxxxxxxxxx on 2006-04-12 17:49 EST -- Sorry - my mistake - I was looking at the wrong output - it does produce : test.cgi /testabc.cgi. This is a CPAN CGI module bug: http://rt.cpan.org/Public/Bug/Display.html?id=18500 I'll try out the patch from the above bug (now in CGI 3.17) and see if it fixes the problem - if so, it can go into the next perl-5.8.8-6+ release. -- Additional comment from jvdias@xxxxxxxxxx on 2006-04-12 18:53 EST -- OK, I now see the problem - CGI.pm-3.15 has a new "-rewrite" sub url() parameter, which, if 0, is meant to make url() return the "$SCRIPT_NAME", not the "$REQUEST_URI". It seems the programmer applies this logic only in the case of '-absolute=>1', NOT '-relative=>1'. Yes, this seems like a bug to me - and is still in the latest 3.17 version. Please try out the attached CGI.pm which fixes the problem - if it works OK, I'll submit it with the next perl-5.8.8-6 version. -- Additional comment from jvdias@xxxxxxxxxx on 2006-04-12 18:54 EST -- Created an attachment (id=127678) --> (https://bugzilla.redhat.com/bugzilla/attachment.cgi?id=127678&action=view) CGI.pm (3.15) fixed to use rewritten REQUEST_URI in url() if rewrite!=0 -- Additional comment from jvdias@xxxxxxxxxx on 2006-04-12 18:55 EST -- Sorry, should have mentioned: copy the above CGI.pm attachment to /usr/lib/perl5/5.8.8/CGI.pm to test. -- Additional comment from bruno@xxxxxxxx on 2006-04-12 22:26 EST -- I tried this out and it looks like it is working. Thanks. -- Additional comment from jvdias@xxxxxxxxxx on 2006-04-13 16:30 EST -- Thanks for the testing. The fix is now checked into CVS and will go into the next perl-5.8.8-6 release. Upstream CPAN CGI.pm bug raised: [rt.cpan.org #18692] http://rt.cpan.org/Ticket/Display.html?id=18692 -- Additional comment from updates@xxxxxxxxxxxxxxxxx on 2006-06-05 17:00 EST -- perl-5.8.8-5 has been pushed for fc5, which should resolve this issue. If these problems are still present in this version, then please make note of it in this bug report. -- Configure bugmail: https://bugzilla.redhat.com/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.