summaryrefslogtreecommitdiff
path: root/includes
diff options
context:
space:
mode:
Diffstat (limited to 'includes')
-rw-r--r--includes/common.inc11
1 files changed, 10 insertions, 1 deletions
diff --git a/includes/common.inc b/includes/common.inc
index 0906f8714..2de18d1fe 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -362,6 +362,11 @@ function drupal_not_found() {
watchdog('page not found', check_plain($_GET['q']), NULL, WATCHDOG_WARNING);
+ // Keep old path for reference, and to allow forms to redirect to it.
+ if (!isset($_REQUEST['destination'])) {
+ $_REQUEST['destination'] = $_GET['q'];
+ }
+
$path = drupal_get_normal_path(variable_get('site_404', ''));
if ($path && $path != $_GET['q']) {
// Custom 404 handler. Set the active item in case there are tabs to
@@ -389,9 +394,13 @@ function drupal_not_found() {
*/
function drupal_access_denied() {
drupal_set_header('403 Forbidden');
-
watchdog('access denied', check_plain($_GET['q']), NULL, WATCHDOG_WARNING);
+ // Keep old path for reference, and to allow forms to redirect to it.
+ if (!isset($_REQUEST['destination'])) {
+ $_REQUEST['destination'] = $_GET['q'];
+ }
+
$path = drupal_get_normal_path(variable_get('site_403', ''));
if ($path && $path != $_GET['q']) {
// Custom 403 handler. Set the active item in case there are tabs to