[drupal-devel] [bug] Search query containing / gives 404
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 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) wulff
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: Dries Status: patch Waiting for Steven's feedback on this. He know what the best fix is. Dries Previous comments: ------------------------------------------------------------------------ May 14, 2005 - 13: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)
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: Steven Status: patch 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. Steven Previous comments: ------------------------------------------------------------------------ May 14, 2005 - 13: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 - 20:10 : Dries Waiting for Steven's feedback on this. He know what the best fix is.
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.
participants (3)
-
Dries -
Steven -
wulff