mirror of
https://github.com/klokantech/tileserver-php.git
synced 2025-08-02 20:57:29 +02:00
The initial commit for 0.1pre.
This commit is contained in:
94
.htaccess
Normal file
94
.htaccess
Normal file
@@ -0,0 +1,94 @@
|
|||||||
|
# tileserver.php integration with Apache via .htaccess
|
||||||
|
|
||||||
|
# Restrictions for data crawlers
|
||||||
|
Options -Indexes
|
||||||
|
Options +FollowSymLinks
|
||||||
|
Options -MultiViews
|
||||||
|
|
||||||
|
# Optional CORS header for cross-domain origin access to all data
|
||||||
|
#<ifModule mod_headers.c>
|
||||||
|
# Header set Access-Control-Allow-Origin *
|
||||||
|
#</ifModule>
|
||||||
|
|
||||||
|
# Mapping of the WMTS standardized URLs to real files and XML capabilities to tileserver.php
|
||||||
|
|
||||||
|
RewriteEngine On
|
||||||
|
|
||||||
|
# WMTS RESTful
|
||||||
|
# ------------
|
||||||
|
# The file can be accessed directly:
|
||||||
|
# Example: http://www.tileserver.com/grandcanyon/10/192/401.png
|
||||||
|
|
||||||
|
# map /wmts/layer/[ANYTHING]z/x/y.ext -> /layer/z/x/y.ext (WMTS ignoring tilematrixset,style,..)
|
||||||
|
RewriteRule ^wmts/([\w\d\._-]+)/.*?(\d+)/(\d+)/(\d+)\.(\w+)$ $1/$2/$3/$4.$5 [L]
|
||||||
|
# Example: http://www.tileserver.com/wmts/grandcanyon/style/tilematrixset/10/192/401.png
|
||||||
|
|
||||||
|
# map /layer/[ANYTHING]z/x/y.ext -> /layer/z/x/y.ext (WMTS ignoring tilematrix,style,..)
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
|
RewriteRule ^([\w\d\._-]+)/.+?(\d+)/(\d+)/(\d+)\.(\w+)$ $1/$2/$3/$4.$5 [L]
|
||||||
|
# Example: http://www.tileserver.com/grandcanyon/style/tilematrixset/10/192/401.png
|
||||||
|
|
||||||
|
# MBTiles support at /layer/z/x/y.ext - loads the tile from mbtiles with php
|
||||||
|
# TODO: serve also 404 errors for tiles
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
|
RewriteRule ^([^\/]+)\/(\d+)\/(\d+)\/(\d+)\.(\w+)$ tileserver-mbtiles.php?tileset=$1&z=$2&x=$3&y=$4&ext=$5 [L]
|
||||||
|
# TODO: use mod_sqlite if available to map the tiles to URL directly by apache
|
||||||
|
|
||||||
|
# WMTS KVP
|
||||||
|
# --------
|
||||||
|
# map the /?key=value&... -> /layer/z/x/y.ext KVP getTile queries directly to files
|
||||||
|
|
||||||
|
# format passed as mime-extension, cleaning formats (jpeg->jpg)
|
||||||
|
RewriteCond %{QUERY_STRING} ^(.*)format=image/jpeg(.*)$ [NC]
|
||||||
|
RewriteRule ^(.*)$ $1?%1format=jpg%2 [N]
|
||||||
|
RewriteCond %{QUERY_STRING} ^(.*)format=jpeg(.*)$ [NC]
|
||||||
|
RewriteRule ^(.*)$ $1?%1format=jpg%2 [N]
|
||||||
|
RewriteCond %{QUERY_STRING} ^(.*)format=image/png(.*)$ [NC]
|
||||||
|
RewriteRule ^(.*)$ $1?%1format=png%2 [N]
|
||||||
|
|
||||||
|
# variable order of keys: TODO: sort the same way as mime-extension to fixed order
|
||||||
|
RewriteCond %{QUERY_STRING} ^.*request=gettile.*layer=([\w\d\._-]+).*tilematrix=(\d+).*tilerow=(\d+).*tilecol=(\d+).*format=(\w+).*$ [NC]
|
||||||
|
RewriteRule ^ %1/%2/%3/%4.%5 [L]
|
||||||
|
RewriteCond %{QUERY_STRING} ^.*request=gettile.*layer=([\w\d\._-]+).*format=(\w+).*tilematrix=(\d+).*tilerow=(\d+).*tilecol=(\d+).*$ [NC]
|
||||||
|
RewriteRule ^ %1/%3/%5/%4.%2 [L]
|
||||||
|
RewriteCond %{QUERY_STRING} ^.*request=gettile.*layer=([\w\d\._-]+).*tilematrix=(\d+).*tilecol=(\d+).*tilerow=(\d+).*format=(\w+).*$ [NC]
|
||||||
|
RewriteRule ^ %1/%2/%4/%3.%5 [L]
|
||||||
|
# Example: http://www.tileserver.com/wmts?request=getTile&layer=grandcanyon&tileMatrix=10&tilerow=192&tilecol=401&format=png
|
||||||
|
# Example: http://www.tileserver.com/wmts?service=WMTS&request=GetTile&version=1.0.0&layer=ne2geo&style=&format=image/jpeg&TileMatrixSet=WGS84&TileMatrix=1&TileRow=2&TileCol=2
|
||||||
|
|
||||||
|
# WMTS ServiceMetadata (GetCapabilities)
|
||||||
|
# --------------------------------------
|
||||||
|
RewriteRule ^.*WMTSCapabilities.xml$ tileserver-wmts.php [QSA,L]
|
||||||
|
RewriteRule ^wmts$ tileserver-wmts.php [QSA,L]
|
||||||
|
RewriteCond %{QUERY_STRING} ^.*request=getcapabilities.*$ [NC]
|
||||||
|
RewriteRule ^ tileserver-wmts.php [L]
|
||||||
|
# Example: http://www.tileserver.com/dev/?service=WMTS&version=1.0.0&request=GetCapabilities
|
||||||
|
|
||||||
|
# TMS XML (ArcBruTile)
|
||||||
|
# --------------------
|
||||||
|
RewriteRule ^tms$ tileserver-tms.php [QSA,L]
|
||||||
|
RewriteRule ^(.+)/tms$ tileserver-tms.php?layer=$1 [QSA,L]
|
||||||
|
# Example: http://www.tileserver.com/dev/?service=WMTS&version=1.0.0&request=GetCapabilities
|
||||||
|
|
||||||
|
# request for non-existent tiles -> layer/none.png or none.png
|
||||||
|
#RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
|
#RewriteRule ^([\w\d\._-]+)/(\d+)/(\d+)/(\d+)\.png$ $1/none.png [L]
|
||||||
|
#RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
|
#RewriteRule ^([\w\d\._-]+)/none\.png$ none.png [L]
|
||||||
|
|
||||||
|
# request for non-existent tiles -> layer/none.jpg or none.jpg
|
||||||
|
#RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
|
#RewriteRule ^([\w\d\._-]+)/(\d+)/(\d+)/(\d+)\.jpg$ $1/none.jpg [L]
|
||||||
|
#RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
|
#RewriteRule ^([\w\d\._-]+)/none\.jpg$ none.jpg [L]
|
||||||
|
|
||||||
|
# TileJSON JSONP wrapper for MapBOX.js API
|
||||||
|
RewriteRule ^maps.jsonp?$ tileserver.php?service=json [QSA,L]
|
||||||
|
RewriteRule ^(.+).jsonp?$ tileserver.php?service=json&layer=$1 [QSA,L]
|
||||||
|
|
||||||
|
# If-Modified-Since (if php is not installed as cgi then comment lines below)
|
||||||
|
#RewriteRule .* - [E=HTTP_IF_MODIFIED_SINCE:%{HTTP:If-Modified-Since}]
|
||||||
|
#RewriteRule .* - [E=HTTP_IF_NONE_MATCH:%{HTTP:If-None-Match}]
|
||||||
|
|
||||||
|
# handle all request on the root '/' by tileserver.php
|
||||||
|
RewriteRule ^$ tileserver.php?service=html [QSA,L]
|
Reference in New Issue
Block a user