Иногда реферер не возможен. Представьте себе форму входа в систему, которая выполняет некоторую проверку, вы вводите неправильный пароль, он возвращается с красным сообщением об ошибке, а затем реферер ошибается. Конечно, в этом случае решение для строки запроса будет работать.
Но в качестве альтернативы вы можете
- использовать скрытое поле формы
- сохранить последнюю страницу в объекте сеанса на сервере
- сериализует возвращаемый URL в JSON и использует Javascript для перенаправления
(я не говорю, что эти варианты хороши или плохи, это все, что я мог придумать прямо сейчас)