running omeka behind a reverse proxy

This post might need to be moved to a different place. I wasn't sure where to post it, but others might find this useful.

It took me a few hours to figure out what was going on with omeka when i first put it behind a reverse proxy. the links that get generated inside the html wasn't what I expected. Anyway, if anyone ever wants to get omeka (0.10b) (or the okapi package) working behind a reverse proxy below is a cut and paste of what have in my apache config...

#
        # omeka and okapi test installs
        #
        #ProxyHTMLLogVerbose On
        #LogLevel Debug
        ProxyRequests           off
        ProxyPass               /omeka  http://myvirtualmachine.mydomain/omeka
        ProxyHTMLURLMap         http://myvirtualmachine.mydomain/omeka /omeka

        ProxyPass               /okapi http://myvirtualmachine.mydomain/okapi
        ProxyHTMLURLMap         http://myvirtualmachine.mydomain/okapi /okapi

        ProxyHTMLLogVerbose On
        <location /omeka>
                SetOutputFilter         proxy-html
                ProxyPassReverse        http://myvirtualmachine.mydomain/omeka
                ProxyHTMLURLMap         /omeka/ /omeka/
                ProxyHTMLURLMap         /omeka  /omeka
        </location>
        <location /okapi>
                SetOutputFilter         DEFLATE;proxy-html;INFLATE
                ProxyPassReverse        http://myvirtualmachine.mydomain/okapi
                ProxyHTMLURLMap         /okapi/ /okapi/
                ProxyHTMLURLMap         /okapi  /okapi
        </location>

with the above i now get http://www.mydomain/omeka
and http://www.mydomain/okapi instead of having the http://myvirutalmachine.mydomain/ baseurl.

you will need the mod_proxy and mod_proxy_html modules for apache enabled for the above to work. Also I had to disable zlib compression for the okapi package (0.9.2). I have tested it extensively yet, but it appears to work.

After some testing it seems that the following option needs to be turned on

"ProxyHTMLExtended on"

this enables parsing of urls inside javascript and css. if this is not turn on then the admin and userside urls that are embedded in www.mydomain/omeka will have the wrong urls.