-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathindex.php
96 lines (75 loc) · 1.93 KB
/
index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<?php
/**
* turistautak.hu osm api
*
* @author Kolesár András <[email protected]>
* @since 2014.06.09
*
*/
require_once('autoload.php');
$url = parse_url($_SERVER['REQUEST_URI']);
if (preg_match('#^/(api\.dev|api)-?([^/]*)/?([0-9]+\.[0-9]+/)?(.*)$#', $url['path'], $regs)) {
$api = $regs[1];
$mods = explode('-', $regs[2]);
$version = $regs[3];
$request = $regs[4];
} else {
header('HTTP/1.0 404 Not Found');
echo '404 Not Found';
exit;
}
$params = @$_GET;
// a címben megadott paramétereket átalakítjuk igazi paraméterekké
foreach ($mods as $mod) {
if (preg_match('/^([^=]+)=?(.*)$/', $mod, $regs)) {
$key = urldecode($regs[1]);
$value = urldecode($regs[2]);
if (!isset($params[$key])) {
$params[$key] = $value;
} else if (is_array($params[$key])) {
$params[$key][] = $value;
} else {
$params[$key] = array($params[$key], $value);
}
}
}
if (isset($params['osm']) && !in_array($request, array('map', 'interpreter', ''))) {
$location = 'http://api.openstreetmap.org/api/' . $version . $request;
if ($url['query'] != '') $location .= '?' . $url['query'];
// header('HTTP/1.1 301 Moved Permanently');
// header('HTTP/1.1 302 Found');
// header('HTTP/1.1 303 See Other');
header('HTTP/1.1 307 Temporary Redirect');
header('Location: ' . $location);
exit;
}
switch ($request) {
case 'capabilities':
require_once('capabilities.php');
break;
case 'changesets':
require_once('changesets.php');
break;
case 'map':
require_once('map.php');
break;
case 'map-dev':
require_once('map-dev.php');
break;
case 'notes':
require_once('notes.php');
break;
case 'trackpoints':
require_once('trackpoints.php');
break;
case 'interpreter':
require_once('interpreter.php');
break;
case '':
require_once('api.php');
break;
default:
header('HTTP/1.0 404 Not Found');
echo '404 Not Found';
// file_put_contents('log', $_SERVER['REQUEST_URI'] . "\n", FILE_APPEND);
}