Comments (2)
Finally this issue is not about urldetection. It's bug in router started by special server configuration.
Same problem has toro-php anandkunal/ToroPHP#82.
The solution is partly fixed in this code but still doesn't work MBTiles (see comments or create diff):
public static function serve($routes) {
$request_method = strtolower($_SERVER['REQUEST_METHOD']);
$path_info = '/';
global $config;
$config['protocol'] = ( isset($_SERVER["HTTPS"]) or $_SERVER['SERVER_PORT'] == '443') ? "https" : "http";
if (!empty($_SERVER['PATH_INFO'])) {
$path_info = $_SERVER['PATH_INFO'];
//this condition changed:
} else if (!empty($_SERVER['ORIG_PATH_INFO']) && strpos($_SERVER['ORIG_PATH_INFO'], 'tileserver.php') === false) {
$path_info = $_SERVER['ORIG_PATH_INFO'];
} else if (!empty($_SERVER['REQUEST_URI']) && strpos($_SERVER['REQUEST_URI'], '/tileserver.php') !== false) {
$path_info = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$config['baseUrls'][0] = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . '?';
} else {
if (!empty($_SERVER['REQUEST_URI'])) {
$path_info = (strpos($_SERVER['REQUEST_URI'], '?') > 0) ? strstr($_SERVER['REQUEST_URI'], '?', true) : $_SERVER['REQUEST_URI'];
}
}
$discovered_handler = null;
$regex_matches = array();
if ($routes) {
$tokens = array(
':string' => '([a-zA-Z]+)',
':number' => '([0-9]+)',
':alpha' => '([a-zA-Z0-9-_@]+)'
);
//global $config;
foreach ($routes as $pattern => $handler_name) {
$pattern = strtr($pattern, $tokens);
if (preg_match('#/?' . $pattern . '/?$#', $path_info, $matches)) {
if (!isset($config['baseUrls'])) {
$config['baseUrls'][0] = $_SERVER['HTTP_HOST'] . preg_replace('#/?' . $pattern . '/?$#', '', $path_info);
}
$discovered_handler = $handler_name;
$regex_matches = $matches;
break;
}
}
}
$handler_instance = null;
if ($discovered_handler) {
if (is_string($discovered_handler)) {
if (strpos($discovered_handler, ':') !== false) {
$discoverered_class = explode(':', $discovered_handler);
$discoverered_method = explode(':', $discovered_handler);
$handler_instance = new $discoverered_class[0]($regex_matches);
call_user_func(array($handler_instance, $discoverered_method[1]));
} else {
$handler_instance = new $discovered_handler($regex_matches);
}
} elseif (is_callable($discovered_handler)) {
$handler_instance = $discovered_handler();
}
} else {
if (!isset($config['baseUrls'][0])) {
// this url detection changed:
$config['baseUrls'][0] = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
if (substr($config['baseUrls'][0], -1) === '/') {
$config['baseUrls'][0] = substr($config['baseUrls'][0], 0, -1);
}
}
if (strpos($_SERVER['REQUEST_URI'], '=') != FALSE) {
$kvp = explode('=', $_SERVER['REQUEST_URI']);
$_GET['callback'] = $kvp[1];
$params[0] = 'index';
$handler_instance = new Json($params);
$handler_instance->getJson();
}
$handler_instance = new Server;
$handler_instance->getHtml();
}
}
Only the 100% working solution is to set base url by default to config variable. In this case is necessary to add path and /tileserver.php. After that everything works.
$config['baseUrls'] = ['labs.klokantech.com/tileserver/tileserver.php'];
from tileserver-php.
http://labs.klokantech.com/ts-php-checker/
from tileserver-php.
Related Issues (20)
- mbtiles from QGIS? HOT 5
- Apache 2 - php 7.2.19 - getting warning / array dump vs loading page HOT 1
- GDAL2Tiles? HOT 1
- Running tileserver-php via Docker on Windows using a bind mount volume makes filemtime() return 0
- localhost MBTiles HOT 3
- map.js erro HOT 1
- When the file is updated, we can reload the file make it work without a restart HOT 1
- Tiles like à la Google Maps HOT 3
- PBF serving in non-root directory not working
- wmts problem with arcmap HOT 2
- Chinese file name
- Valid KVP getTile Requests respond with a GetCapabilities document
- urn:ogc:def:crs:EPSG:6.18:3:3857 is wrong and should be urn:ogc:def:crs:EPSG:6.18.3:3857 HOT 1
- Map Tiles working on localhost but not from remote computer
- Question: has anyone ever tried to convert a osm.pbf to MBtiles and produced a map? using tippecanoe ogr2ogr
- All maps Invisible HOT 4
- Trying to get in touch regarding a security issue
- support arcgis tile package? HOT 2
- JSON metadata file is not valid. Please check configuration of your server. HOT 1
- Tile folder xyz
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tileserver-php.