[drupal-devel] [bug] Search query containing / gives 404

wulff drupal-devel at drupal.org
Sun May 15 09:01:48 UTC 2005


Issue status update for http://drupal.org/node/22850

 Project:      Drupal
 Version:      cvs
 Component:    search.module
 Category:     bug reports
 Priority:     normal
 Assigned to:  Anonymous
 Reported by:  wulff
 Updated by:   wulff
 Status:       patch

I have done some more digging. It seems that this is not really related
to mod_rewrite. According to
http://137.113.100.11/manual/mod/core.html#allowencodedslashes Apache
versions prior to 2.0.46 automatically return a 404 error when
encountering '%2F' in the URL.


Apparently, the AllowEncodedSlashes functionality /may/ be backported
to 1.3.x
(http://www.mail-archive.com/dev@httpd.apache.org/msg25089.html).




wulff



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

May 14, 2005 - 12:25 : wulff

Attachment: http://drupal.org/files/issues/search.module.patch (740 bytes)

Searching for a date, e.g. "14/05/2005", results in a 404 error.


search.module redirects to http://drupal.org/search/node/14%2F05%2F2005
which isn't handled correctly by mod_rewrite.


The attached patch replaces all occurrences of '%2F' in the query with
'/'.


A test query for '1/2 1~2' results in a redirect to
http://drupalhead.local/search/node/1/2+1%7E2 which is handled
correctly by mod_rewrite.


(Solution found via comment on
http://ccca.nctu.edu.tw/~hlb/tavi/index.php?page=URL+Rewriting)




------------------------------------------------------------------------

May 14, 2005 - 19:10 : Dries

Waiting for Steven's feedback on this. He know what the best fix is.




------------------------------------------------------------------------

May 14, 2005 - 23:44 : Steven

Actually it is not clear to me at all why an urlencoded slash would be a
problem. It is even weirder that mod_rewrite can deal with unescaped
slashes, but 404s on encoded slashes. In fact, if it wasn't URLencoded,
then the non-clean URL would be invalid (as far as I know it is not
allowed to use slashes in GET query data).


The page you linked to doesn't make me any wiser as to the cause of the
problem. Does this problem occur with more than just slash characters?


Even if it is just limited to slashes, we'd need a cleaner fix than
this. Someone with more mod_rewrite skills should look into this
problem as it has really nothing to do with searching. If it is a
mod_rewrite bug that cannot be fixed, then a wrapper around urlencode()
sounds like a good idea.







More information about the drupal-devel mailing list