urlparser.php
Code (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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
<?php
#########################################################################################
## URL Request Parser V1.1 ##
## ##
## Het vermenigvuldigen, verspreiden, gebruiken (ook commercieel) en aanpassen is ##
## toegestaan. Het verkopen van dit script voor geld, goederen, of andere ruilmiddelen ##
## is niet toegestaan! ##
## ##
#########################################################################################
/*#######################################################################################
Vereisten:
- PHP
- Apache
- Ondersteuning voor .htaccess bestanden
- Mod_rewrite
Installatie:
1. Configuratie veranderen
2. Uploaden naar server
3. Bijgevoegde .htaccess code toevoegen/uploaden
Werking:
Dit script maakt het mogelijk om voor een bepaalde map geen extensie meer te hoeven
gebruiken:
http://www.example.com/index.php
wordt
http://www.example.com/index
http://www.example.com/forum/index.html
wordt
http://www.example.com/forum/index
http://www.example.com/forum/index.php?topic=0345121&post=241575
wordt
http://www.example.com/forum/index?topic=0345121&post=241575
Als er meerdere bestanden met dezelfde naam zijn, maar niet met dezelfde extensie, dan
zal het script het rijtje van alle opgegeven extensies langs gaan. Als .php voor .html
staat, zal het .php bestand worden ingevoegd.
.htacces inhoud:
<IfModule mod_rewrite.c>
RewriteEngine On
# bestaande mappen of bestanden
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.* - [L]
# niet-bestaande mappen of bestanden
RewriteRule ^(.*)/? urlparser.php?q=$1 [L]
</IfModule>
#######################################################################################*/
#########################################################################################
// Configuratie
// Toegestane extensies
$extensions = array(
'.php',
'.html',
'.phtml',
'.php3',
'.xml',
'.asp',
'.apsx',
'.jsp'
);
// Niet gevonden pagina
$notexist = "nietgevonden.php";
#########################################################################################
#########################################################################################
$url = trim($_GET['q']); // Haal opgevraagde url op
$url_parse = parse_url($url); // Verdeel url in stukken
$url = rtrim($url_parse['path'], '/'); // Verwijder slash
$i = 0; // Bereid teller van whileloop voor
$count = count($extensions) + 1; // Bereid conditie van whileloop voor
$extensions = array_reverse($extensions); // Keer array om
while($i < $count || !$result['found']) { // Doorgaan totdat array is doorgelopen, of de bestandsextensie is gevonden
if(file_exists($url.$extensions[$i])) { // Bestaat bestand + extensie?
$result['found'] = TRUE; // Gevonden: true
$result['extension'] = $extensions[$i]; // Extensie opslaan
} elseif(!isset($result['found']) && !isset($result['extension'])) { // Niet gevonden: (tijdelijk) false
$result['found'] = FALSE; // Gevonden: false
$result['extension'] = ""; // Extensievariabele defineren
}
$i++; // 1 bij $i optellen
}
if($result['found'] && isset($result['extension'])) { // Is het bestand en de bijbehordende extensie gevonden?
include $url . $result['extension']; // bestand zonder query invoegen
} else { // Bestand niet gevonden
include $notexist; // Foutpagina invoegen
}
#########################################################################################
?>
#########################################################################################
## URL Request Parser V1.1 ##
## ##
## Het vermenigvuldigen, verspreiden, gebruiken (ook commercieel) en aanpassen is ##
## toegestaan. Het verkopen van dit script voor geld, goederen, of andere ruilmiddelen ##
## is niet toegestaan! ##
## ##
#########################################################################################
/*#######################################################################################
Vereisten:
- PHP
- Apache
- Ondersteuning voor .htaccess bestanden
- Mod_rewrite
Installatie:
1. Configuratie veranderen
2. Uploaden naar server
3. Bijgevoegde .htaccess code toevoegen/uploaden
Werking:
Dit script maakt het mogelijk om voor een bepaalde map geen extensie meer te hoeven
gebruiken:
http://www.example.com/index.php
wordt
http://www.example.com/index
http://www.example.com/forum/index.html
wordt
http://www.example.com/forum/index
http://www.example.com/forum/index.php?topic=0345121&post=241575
wordt
http://www.example.com/forum/index?topic=0345121&post=241575
Als er meerdere bestanden met dezelfde naam zijn, maar niet met dezelfde extensie, dan
zal het script het rijtje van alle opgegeven extensies langs gaan. Als .php voor .html
staat, zal het .php bestand worden ingevoegd.
.htacces inhoud:
<IfModule mod_rewrite.c>
RewriteEngine On
# bestaande mappen of bestanden
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.* - [L]
# niet-bestaande mappen of bestanden
RewriteRule ^(.*)/? urlparser.php?q=$1 [L]
</IfModule>
#######################################################################################*/
#########################################################################################
// Configuratie
// Toegestane extensies
$extensions = array(
'.php',
'.html',
'.phtml',
'.php3',
'.xml',
'.asp',
'.apsx',
'.jsp'
);
// Niet gevonden pagina
$notexist = "nietgevonden.php";
#########################################################################################
#########################################################################################
$url = trim($_GET['q']); // Haal opgevraagde url op
$url_parse = parse_url($url); // Verdeel url in stukken
$url = rtrim($url_parse['path'], '/'); // Verwijder slash
$i = 0; // Bereid teller van whileloop voor
$count = count($extensions) + 1; // Bereid conditie van whileloop voor
$extensions = array_reverse($extensions); // Keer array om
while($i < $count || !$result['found']) { // Doorgaan totdat array is doorgelopen, of de bestandsextensie is gevonden
if(file_exists($url.$extensions[$i])) { // Bestaat bestand + extensie?
$result['found'] = TRUE; // Gevonden: true
$result['extension'] = $extensions[$i]; // Extensie opslaan
} elseif(!isset($result['found']) && !isset($result['extension'])) { // Niet gevonden: (tijdelijk) false
$result['found'] = FALSE; // Gevonden: false
$result['extension'] = ""; // Extensievariabele defineren
}
$i++; // 1 bij $i optellen
}
if($result['found'] && isset($result['extension'])) { // Is het bestand en de bijbehordende extensie gevonden?
include $url . $result['extension']; // bestand zonder query invoegen
} else { // Bestand niet gevonden
include $notexist; // Foutpagina invoegen
}
#########################################################################################
?>