If you have just one application all you need to do is set the web2py WSGI 
script alias and serve files from the web2py folder excluding admin parts.

WSGIDaemonProcess web2py display-name=%{GROUP}
WSGIProcessGroup web2py
WSGIScriptAlias /prefix /var/www/web2py/wsgihandler.py

<Directory /var/www/web2py>
    Options +FollowSymLinks
    AllowOverride None
    Order Allow,Deny
    Deny from all
    <Files wsgihandler.py>
      Allow from all
    </Files>
  </Directory>

  AliasMatch ^/prefix/([^/]+)/static/(.*) 
/var/www/web2py/applications/$1/static/$2

  <Directory /var/www/web2py/applications/*/static/>
    Order Allow,Deny
    Allow from all
  </Directory>

  <LocationMatch ^/prefix/([^/]+)/appadmin>
    Deny from all
  </LocationMatch>

  <LocationMatch ^/prefix/admin>
    Deny from all
  </LocationMatch>
</VirtualHost>

Then set path prefix and the default application in your web2py/routes.py 
file:

routers = dict(
    # base router
    BASE = dict(
        default_application = "app",
        path_prefix = "prefix",
    ),
)

As a result you will get "domain/prefix" pointing to the default 
application "app".

Reply via email to