[Qgis-developer] URL Rewriting and qgis-web-client

Emilio Loi loi at faunalia.it
Tue Feb 26 16:15:58 PST 2013


Ok, now I have one rule for wms

RewriteRule ^wms/([^/]+)$
> /cgi-bin/qgis_mapserv.fcgi?map=/path-to-projects/$1.qgs [QSA,PT,L]

(it works, you can see it in action here
http://vega.faunalia.it/wms/candela?REQUEST=GetCapabilities)

one to have a short url with the project name

RewriteRule ^maps/([^./]+)/?$
> /path-to-qgiswc/qgiswebclient.html?map=/path-to-projects/$1.qgs [PT,L]


and one for html/js/css

RewriteRule ^maps/(.*) /path-to-qgiswc/$1 [PT]


running the webapp with an example project I get an error about some
not-well-specified missing parameters (i think the only one is missing is
the project full path)
you can try here:

http://vega.faunalia.it/maps/candela


Do you think my rewrite engine configuration is right or not?
Goodnight,


2013/2/26 Andreas Neumann <a.neumann at carto.net>

> Hi,
>
> If you do the redirects, I recommend to always do two redirects:
>
> * one for the WMS
> * one for the HTML/JSS/CSS files
>
> Here is what I use (modified to hide my paths):
>
> ----------------
>
> #Rewrite Rules for QGIS webclient
> # Map /wms to qgis_mapserv.fcgi
> RewriteEngine On
> RewriteLog /var/log/apache2/webgis_rewrite.log
> RewriteLogLevel 0
>  #handle WMS requests to QGIS server
> RewriteRule ^/wms/(.+)$
> /cgi-bin/qgis_mapserv.fcgi?map=/www/projects/$1.qgs [QSA,PT,L]
> # Map /maps to /qgis-web-client
> # First handle the mapping of the starting html file - works for 1 to 7
> levels
> RewriteRule ^/maps/([^/.]+/{0,1}){1,7}$
> /qgis-web-client/qgiswebclient.html [PT,L]
>
> Hope this helps?
>
> Andreas
>
>
> Am 26.02.2013 17:32, schrieb Emilio Loi:
> > Thanks for your answer.
> > First, I'd corrected serverAndCGI value.
> >
> > Without any redirect rule all works perfectly.
> > Currently I have only one RedirectRule that redirects any
> > */wms/project*request to
> > *qgis_mapserv.fcgi* script),
> >
> >  <Directory /var/www/qgis-web-client/site/>
> >         Options Indexes FollowSymLinks MultiViews
> >         AllowOverride all
> >         Order allow,deny
> >         allow from all
> >         RewriteEngine On
> >         RewriteRule wms/([^/]+)$
> >
> http://vega.faunalia.it/cgi-bin/qgis_mapserv.fcgi?map=/var/www/qgis-web-client/projects/$1.qgs[QSA,L]
> >
> >   </Directory>
> >
> >
> > so I access to QGIS web client at this url (the actual one):
> >
> >
> http://vega.faunalia.it/qgis-web-client/site/qgiswebclient.html?map=/var/www/qgis-web-client/projects/candela.qgs
> >
> >
> > Is it correct? It has full project path with project name in *map*
> request
> > parameter.
> > Bye,
> >
> >
> > 2013/2/26 Andreas Neumann <a.neumann at carto.net>
> >
> >> Hi,
> >>
> >> You always have to specify a project path and project name with QGIS web
> >> client. Regardless whether you use URL rewriting or not. The client does
> >> not work without project path and name.
> >>
> >> So a correct URL to start the client would be:
> >>
> >> http://hostname/maps/projectpath/projectname?optionalParameters
> >>
> >> Of course this all depends on your setup.
> >>
> >> This whole URL rewriting is a bit complex to set up. Before you do it I
> >> would recommend you test the client without URL rewriting, e.g. with a
> >> URL like:
> >>
> >>
> >>
> http://hostname/qgiswebclient.html?map=/home/web/qgis-web-client/projects/naturalearth_110million.qgs&format=image/png&visibleLayers=Rivers,Glaciated%20Areas,Lakes,Land,Ocean
> >>
> >> For 'var serverAndCGI = "http://THE_HOST/wms/"' I recommend to not
> >> specify the servername, in case you move the whole thing to another
> >> server. Better would be:
> >>
> >> var serverAndCGI = "/wms/"
> >>
> >> Hope this helps a bit?
> >>
> >> Andreas
> >>
> >>
> >> Am 26.02.2013 16:33, schrieb Emilio Loi:
> >>> Hi everybody, I hope you can help me.
> >>> I'm trying to enable URL Rewriting in Qgis-web-client as described at
> >> point
> >>> 5 of the configuration guide (https://github.com/qgis/qgis-web-client)
> >>> I'm using this rule:
> >>>
> >>> RewriteRule wms/([^/]+)$
> >>> cgi-bin/qgis_mapserv.fcgi?map=/var/www/qgis-web-client/projects/$1.qgs
> >>>
> >>> It works well: when I browse http://THE_HOST/wms/example on firefox
> the
> >>> server returns the cgi script result whit parameter
> >>> map=/var/www/.../example.qgs
> >>> Then I've set
> >>>
> >>> var serverAndCGI = "http://THE_HOST/wms/"
> >>>
> >>> in GlobalOptions.js instead of the full url.
> >>>
> >>> The problem shows up when Qgis-web-client trys to use the cgi script:
> >>> instead of call /wms/example/?params it calls /wms/NOTHING/?params. (as
> >> you
> >>> can see)
> >>>
> >>> [16:09:20.950] GET
> >>>
> >>
> http://THE_HOST/wms//?&_dc=1361891360854&SERVICE=WMS&VERSION=1.3&REQUEST=GetProjectSettings[HTTP/1.1
> >>> 404 Not Found 126ms]
> >>>
> >>> What am I forgetting to configure?
> >>> Thanks in advance.
> >>>
> >>>
> >>>
> >>> _______________________________________________
> >>> Qgis-developer mailing list
> >>> Qgis-developer at lists.osgeo.org
> >>> http://lists.osgeo.org/mailman/listinfo/qgis-developer
> >>>
> >>
> >> _______________________________________________
> >> Qgis-developer mailing list
> >> Qgis-developer at lists.osgeo.org
> >> http://lists.osgeo.org/mailman/listinfo/qgis-developer
> >>
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20130227/4b8a5099/attachment-0001.html>


More information about the Qgis-developer mailing list