Since upgrading to 4.7 menu item URLs which include query strings are URL encoded. For example '/forum/forumdisplay.php?f=4' (a vBulletin forum on the same site) is displayed as '/forum/forumdisplay.php%3Ff%3D4'. Also leading slashes are added even to URLs that already have one.

The only workaround for the encoding, AFAIK, is to use a fully qualified URL such as http://www.example.com/forum/forumdisplay.php?f=4.

As Drupal paths are meant to be entered without a leading slash (e.g. 'node/123') IMO absolute paths on the same server (i.e. those beginning with a slash) should not be assumed to be a Drupal path, and thus should not be altered by Drupal. For example '/not_drupal.html' or '/another/forum.php?id=12' should be treated in the same way as fully qualified URLs such as 'http://www.example.com/product.php?id=123'.

Although IMHO it should be the responsibility of the user to enter their URLs correctly (i.e. URL encoding applied where necessary) I can see there would be problems allowing query strings on Drupal paths. However would it be possible to do something like the following (psuedo-code)?

if ( clean URLs enabled) {
  menu item 'path?foo=bar' to link /path?foo=bar
} else {
  menu item 'path?foo=bar' to link index.php?q=path&foo=bar
}

Comments

killes@www.drop.org’s picture

Priority: Critical » Normal
Status: Active » Closed (won't fix)

nobody else complained so either it doesn't happen on ever install or menu paths with query args arent' popular.

I mark this won't fix. Menu module implicitly assumes that all paths are Drupal paths. External (non-Drupal) paths should indeed be fully qualified.

James Harvard’s picture

OK. However, as 4.7 broke menu items that worked in 4.6 I think something should be added to the change-log. (Is there anywhere else people would check for incompatibilities and 'gotchas' before upgrading?)

AFAIK Drupal paths should not have a leading slash, therefore menu item paths which do have a leading slash are not Drupal paths, and should not be encoded by Drupal.

Would it be more appropriate to change this to a feature request?

jarea’s picture

Problem for me as well. Track this.