[drupal-devel] [bug] .htaccess - issue with rewriting to cgi's

davek drupal-devel at drupal.org
Mon Aug 8 03:54:41 UTC 2005


Issue status update for 
http://drupal.org/node/28423
Post a follow up: 
http://drupal.org/project/comments/add/28423

 Project:      Drupal
 Version:      4.6.0
 Component:    other
 Category:     bug reports
 Priority:     normal
 Assigned to:  Anonymous
 Reported by:  davek at davekaufman.net
 Updated by:   davek at davekaufman.net
-Status:       active
+Status:       patch (code needs review)
 Attachment:   http://drupal.org/files/issues/htaccess_3.patch (375 bytes)

The patch in question.




davek at davekaufman.net



Previous comments:
------------------------------------------------------------------------

Mon, 08 Aug 2005 03:43:25 +0000 : davek at davekaufman.net

After attempting to create a custom rewrite rule that had nothing to do
with drupal, I noticed that the following rules in the default
.htaccess file were being too greedy and seemingly matching every URL
provided:


  # Rewrite current-style URLs of the form 'index.php?q=x'.
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]


as near as I can determine, the problem arose from the fact that my
custom rewrite was dealing with a cgi. Specifically, I was attempting
to rewrite a URL of the form:


http://domain.tld/finger/username


to the form


http://domain.tld/cgi-bin/finger.pl?user=username


but it wasn't working.


After beating my head against it for a couple hours, I discovered that
mod_rewrite can be set to log what it's doing, which is when I found
the overly greedy rules.


The fix (or at least the fix I discovered) is to add the following line
to that section of the .htaccess file:


 RewriteCond %{REQUEST_FILENAME} !.*cgi-bin.*


which says, in essence, "any URI that contains the string 'cgi-bin' is
exempt from the following RewriteRule"


I've included a "patch" containing this change.  Rewriting URLs for
cgi's is a pretty common thing to do, can someone please verify this
issue?







More information about the drupal-devel mailing list