Index: trac/env.py
===================================================================
--- trac/env.py	(revision 8345)
+++ trac/env.py	(working copy)
@@ -174,6 +174,11 @@
 
          (since 0.10.5)""")
 
+    wiki_prefix = Option('wiki', 'uri_prefix', 'wiki',
+                         """Defines the uri prefix that gets the wiki handler""")
+    wiki_start =  Option('wiki', 'wiki_start', 'WikiStart',
+                         """Defines the wiki start page name""")
+
     def __init__(self, path, create=False, options=[]):
         """Initialize the Trac environment.
         
Index: trac/templates/theme.html
===================================================================
--- trac/templates/theme.html	(revision 8345)
+++ trac/templates/theme.html	(working copy)
@@ -33,7 +33,7 @@
     ${navigation('mainnav')}
 
     <div id="main">
-      <div id="ctxtnav" class="nav">
+      <div py:if="(not ctxtnav.hide_ctxtnav_from_anonymous) or authname != 'anonymous'" id="ctxtnav" class="nav">
         <h2>Context Navigation</h2>
           <ul py:if="chrome.ctxtnav">
               <li py:for="i, elm in enumerate(chrome.ctxtnav)"
Index: trac/wiki/admin.py
===================================================================
--- trac/wiki/admin.py	(revision 8345)
+++ trac/wiki/admin.py	(working copy)
@@ -198,6 +198,6 @@
         db = self.env.get_db_cnx()
         self.load_pages(pkg_resources.resource_filename('trac.wiki', 
                                                         'default-pages'),
-                        db, ignore=['WikiStart', 'checkwiki.py'],
+                        db, ignore=[self.env.wiki_start, 'checkwiki.py'],
                         create_only=['InterMapTxt'])
         db.commit()
Index: trac/wiki/api.py
===================================================================
--- trac/wiki/api.py	(revision 8345)
+++ trac/wiki/api.py	(working copy)
@@ -265,7 +265,7 @@
             pagename, version = pagename.split('@', 1)
         if version and query:
             query = '&' + query[1:]
-        pagename = pagename.rstrip('/') or 'WikiStart'
+        pagename = pagename.rstrip('/') or self.env.wiki_start
         if formatter.resource and formatter.resource.realm == 'wiki' \
                               and not pagename.startswith('/'):
             prefix = formatter.resource.id
Index: trac/wiki/web_ui.py
===================================================================
--- trac/wiki/web_ui.py	(revision 8345)
+++ trac/wiki/web_ui.py	(working copy)
@@ -65,6 +65,11 @@
     PAGE_TEMPLATES_PREFIX = 'PageTemplates/'
     DEFAULT_PAGE_TEMPLATE = 'DefaultPage'
 
+    def __init__(self):
+        """Init instance variables"""
+        self.match_request_regex = re.compile(r'/' + self.env.wiki_prefix + r'(?:/(.+))?$')
+
+
     # IContentConverter methods
     def get_supported_conversions(self):
         yield ('txt', _('Plain Text'), 'txt', 'text/x-trac-wiki', 'text/plain',
@@ -99,8 +104,10 @@
 
     # IRequestHandler methods
 
+    
+
     def match_request(self, req):
-        match = re.match(r'/wiki(?:/(.+))?$', req.path_info)
+        match = self.match_request_regex.match(req.path_info)
         if match:
             if match.group(1):
                 req.args['page'] = match.group(1)
@@ -108,7 +115,7 @@
 
     def process_request(self, req):
         action = req.args.get('action', 'view')
-        pagename = req.args.get('page', 'WikiStart')
+        pagename = req.args.get('page', self.env.wiki_start)
         version = req.args.get('version')
         old_version = req.args.get('old_version')
 
@@ -492,7 +499,7 @@
                          conversion[3])
 
         data = self._page_data(req, page)
-        if page.name == 'WikiStart':
+        if page.name == self.env.wiki_start:
             data['title'] = ''
 
         if not page.exists:
@@ -568,7 +575,7 @@
     
     def _wiki_ctxtnav(self, req, page):
         """Add the normal wiki ctxtnav entries."""
-        add_ctxtnav(req, _('Start Page'), req.href.wiki('WikiStart'))
+        add_ctxtnav(req, _('Start Page'), req.href.wiki(self.env.wiki_start))
         add_ctxtnav(req, _('Index'), req.href.wiki('TitleIndex'))
         if page.exists:
             add_ctxtnav(req, _('History'), req.href.wiki(page.name, 
Index: trac/web/api.py
===================================================================
--- trac/web/api.py	(revision 8345)
+++ trac/web/api.py	(working copy)
@@ -160,7 +160,7 @@
     This class provides a convenience API over WSGI.
     """
 
-    def __init__(self, environ, start_response):
+    def __init__(self, environ, start_response, wiki_prefix='wiki'):
         """Create the request wrapper.
         
         @param environ: The WSGI environment dict
@@ -189,8 +189,8 @@
         self.base_url = self.environ.get('trac.base_url')
         if not self.base_url:
             self.base_url = self._reconstruct_url()
-        self.href = Href(self.base_path)
-        self.abs_href = Href(self.base_url)
+        self.href = Href(self.base_path, wiki_prefix)
+        self.abs_href = Href(self.base_url, wiki_prefix)
 
     def __getattr__(self, name):
         """Performs lazy attribute lookup by delegating to the functions in the
Index: trac/web/chrome.py
===================================================================
--- trac/web/chrome.py	(revision 8345)
+++ trac/web/chrome.py	(working copy)
@@ -322,6 +322,9 @@
         """Show IP addresses for resource edits (e.g. wiki).
         (''since 0.11.3'').""")
 
+    hide_ctxtnav_from_anonymous = BoolOption('ctxtnav', 'hide_ctxtnav_from_anonymous', 'false',
+        """Hide the context navigation bar from anonymous visitors.""")
+
     templates = None
 
     # A dictionary of default context data for templates
@@ -654,6 +657,8 @@
         d['chrome'] = {
             'footer': Markup(self.env.project_footer)
         }
+        d['ctxtnav'] = { 'hide_ctxtnav_from_anonymous': self.hide_ctxtnav_from_anonymous }
+
         if req:
             d['chrome'].update(req.chrome)
         else:
Index: trac/web/href.py
===================================================================
--- trac/web/href.py	(revision 8345)
+++ trac/web/href.py	(working copy)
@@ -115,7 +115,8 @@
     '/trac/browser/trunk/README.txt?format=txt'
     """
 
-    def __init__(self, base):
+    def __init__(self, base, wiki_prefix='wiki'):
+        self.wiki_prefix = wiki_prefix
         self.base = base
         self._derived = {}
 
@@ -133,6 +134,8 @@
                 params.append((name, value))
 
         if args:
+            if args[0] == 'wiki':
+                args = (self.wiki_prefix,) + (args[1:])
             lastp = args[-1]
             if lastp and type(lastp) is dict:
                 for k,v in lastp.items():
Index: trac/web/main.py
===================================================================
--- trac/web/main.py	(revision 8345)
+++ trac/web/main.py	(working copy)
@@ -431,7 +431,7 @@
     except Exception, e:
         env_error = e
 
-    req = Request(environ, start_response)
+    req = Request(environ, start_response, env.wiki_prefix)
     try:
         return _dispatch_request(req, env, env_error)
     finally:

