Как правильно настроить пользовательский пункт назначения в Drupal URL - PullRequest
2 голосов
/ 28 сентября 2011

Я пытаюсь разместить пункт назначения на пути друпов следующим образом:

http://myhost/root-folder/node/100/delete?destination=node/150?nid=300

Это немного необычно с точки зрения друпальной терминологии, но это мое требование.

Когда я захожу на вышеуказанный URL, он показывает кнопку удаления и ссылку отмены. Но когда я нажимаю на ссылку отмены, URL перенаправленной страницы становится таким:

http://myhost/root-folder/node/150%3Fnid%3D300

вместо

http://myhost/root-folder/node/150?nid=300

т.е. myhost = localhost

Это означает, что он заменяет ? с кодом %3F и = на %3D.

Как мне избежать этой проблемы?

1 Ответ

2 голосов
/ 28 сентября 2011

Это на самом деле совершенно правильно, второй ? находится после идентификатора строки запроса (т. Е. Первого ?), поэтому он имеет для кодирования URL, чтобы оставаться действительным.

Не беспокойтесь об этом, хотя, когда Drupal выполняет свои перенаправления с помощью функции drupal_get_destination() , он декодирует закодированную строку и перенаправляет на правильный путь.

Попробуйте добавить несколько разных URL-адресов в этого онлайн-инструмента , и вы увидите, как они должны выглядеть, когда они правильно закодированы.

...