diff --git a/hansel.module b/hansel.module
index d9ce426..7f998b7 100644
--- a/hansel.module
+++ b/hansel.module
@@ -86,6 +86,12 @@ function hansel_hansel_switch_types() {
       'config form' => 'hansel_ui_switch_path_alias_config_form',
       'file' => 'hansel.switches.inc',
     ),
+    'request uri' => array(
+      'compare' => 'hansel_switch_request_uri_compare',
+      'info' => 'hansel_switch_request_uri_info',
+      'config form' => 'hansel_ui_switch_request_uri_config_form',
+      'file' => 'hansel.switches.inc',
+    ),
   );
 }
 
diff --git a/hansel.switches.inc b/hansel.switches.inc
index d0c1b0f..796e854 100644
--- a/hansel.switches.inc
+++ b/hansel.switches.inc
@@ -176,7 +176,18 @@ function hansel_switch_path_alias_compare($arguments, $value) {
   }
 
   $alias = drupal_get_path_alias(hansel_path());
+  return _hansel_switch_string_compare($arguments, $value, $alias);
+}
 
+/**
+ * Helper function to compare a path with a given value.
+ *
+ * @param array $arguments
+ * @param string $value
+ * @return boolean
+ */
+
+function _hansel_switch_string_compare($arguments, $value, $path) {
   $mode = empty($arguments['mode']) ? 0 : $arguments['mode'];
   switch ($mode) {
     case 0:
@@ -198,7 +209,7 @@ function hansel_switch_path_alias_compare($arguments, $value) {
     $pattern .= 'i';
   }
 
-  return (bool) @preg_match($pattern, $alias);
+  return (bool) @preg_match($pattern, $path);
 }
 
 /**
@@ -219,4 +230,27 @@ function hansel_switch_path_alias_info($arguments) {
     case 3:
       return '(' . t('matches regular expression') . ')';
   }
-}
\ No newline at end of file
+}
+
+/**
+ * Callback for "request uri" switch to generate the information line.
+ *
+ * @param array $arguments
+ * @return string
+ */
+function hansel_switch_request_uri_info($arguments) {
+  return hansel_switch_path_alias_info($arguments);
+}
+
+
+/**
+ * Callback for "Request URI" switch.
+ *
+ * @param array $arguments
+ * @param string $value
+ * @return boolean
+ */
+function hansel_switch_request_uri_compare($arguments, $value) {
+  $uri = trim(request_uri(), '/');
+  return _hansel_switch_string_compare($arguments, $value, $uri);
+}
diff --git a/hansel_ui/hansel_ui.module b/hansel_ui/hansel_ui.module
index 34da04f..ae608a6 100644
--- a/hansel_ui/hansel_ui.module
+++ b/hansel_ui/hansel_ui.module
@@ -803,6 +803,16 @@ function hansel_ui_switch_path_alias_config_form($arguments) {
 }
 
 /**
+ * Callback for "request uri" switch to generate the configuration form.
+ *
+ * @param array $arguments
+ * @return array
+ */
+function hansel_ui_switch_request_uri_config_form($arguments) {
+  return hansel_ui_switch_path_alias_config_form($arguments);
+}
+
+/**
  * Callback for the "add single link" breadcrumb action to generate the config form.
  *
  * @param array $arguments
