diff --git a/kernel/classes/ezsiteaccess.php b/kernel/classes/ezsiteaccess.php
index be2805d..7a0f33e 100644
--- a/kernel/classes/ezsiteaccess.php
+++ b/kernel/classes/ezsiteaccess.php
@@ -317,12 +317,20 @@ class eZSiteAccess
 
                             foreach ( $matchMapItems as $matchMapItem )
                             {
-                                $matchHost       = $matchMapItem[0];
-                                $matchURI        = $matchMapItem[1];
-                                $matchAccess     = $matchMapItem[2];
-                                $matchHostMethod = isset( $matchMapItem[3] ) ? $matchMapItem[3] : $defaultHostMatchMethod;
+                                $matchHost        = $matchMapItem[0];
+                                $matchURI         = $matchMapItem[1];
+                                $matchAccess      = $matchMapItem[2];
+                                $matchHostMethod  = isset( $matchMapItem[3] ) ? $matchMapItem[3] : $defaultHostMatchMethod;
+                                $matchUriOptional = isset( $matchMapItem[4] ) ? $matchMapItem[4] === 'optional' : false;
 
-                                if ( $matchURI !== $match_item )
+                                if ( $matchUriOptional )
+                                {
+                                    if ( $matchURI === $match_item )
+                                        $hasUriMatch = true;
+                                    else
+                                        $hasUriMatch = false;
+                                }
+                                else if ( $matchURI !== $match_item )
                                     continue;
 
                                 switch( $matchHostMethod )
@@ -352,8 +360,11 @@ class eZSiteAccess
 
                                 if ( $hasHostMatch )
                                 {
-                                    $uri->increase( 1 );
-                                    $uri->dropBase();
+                                    if ( $hasUriMatch )
+                                    {
+                                        $uri->increase( 1 );
+                                        $uri->dropBase();
+                                    }
                                     $access['name'] = $matchAccess;
                                     $access['type'] = $type;
                                     $access['uri_part'] = array( $matchURI );
diff --git a/settings/site.ini b/settings/site.ini
index 0f1358c..ae5c3ff 100644
--- a/settings/site.ini
+++ b/settings/site.ini
@@ -656,11 +656,17 @@ HostMatchMapItems[]=ezno.bf.ez.no;ezno##!
 HostMatchMapItems[]=eznoadmin.bf.ez.no;eznoadmin##!
 
 # Add array entries here if you use MatchOrder host_uri
-# Each entry consists of the hostname;urlmatch;accessname[;start|end|part|strict]
-# Last optional paramter controls host matching method, 'strict' by default
-# Change HostUriMatchMethodDefault to one of these options to chenge default value
-HostUriMatchMethodDefault=strict
+# Each entry consists of:
+# HostUriMatchMapItems[]=hostname;urlmatch;accessname[;start|end|part|strict[;optional]]
+# Second last optional paramter controls host matching method, 'strict' by default
+#  Change HostUriMatchMethodDefault to one of these options to chenge default value
+# Last option makes uri match optional, meaning it will match even if not in uri
+#  and generate url's that include the uri part in links.
+# Note: None of the optional options are supported by static caching, only strict is.
+#       Reason is the rewrite rules needs a strict convention between host/uri & siteacces
+
 
+HostUriMatchMethodDefault=strict
 HostUriMatchMapItems[]
 ## This example will match on example.com/nor
 #HostUriMatchMapItems[]=example.com;nor;examle_nor
@@ -670,6 +676,9 @@ HostUriMatchMapItems[]
 #HostUriMatchMapItems[]=example.com;eng;examle_eng;start
 ## This example will match on example.com/eng, www.example.com/eng & example.com.localhost/eng
 #HostUriMatchMapItems[]=example.com;eng;examle_eng;part
+## This example will match on example.com/nor & example.com, links will point to example.com/nor
+## either way.
+#HostUriMatchMapItems[]=example.com;nor;examle_nor;strict;optional
 
 
 
