Alle verzoeken doorsturen naar 1 pagina
Ik maak me al een hele middag kwaad op het volgende. Ik ben bezig met een systeem waarvan niets beschikbaar is zonder wachtwoord. Je komt aan op de domeinnaam en standaard opent dan de index.php die controleert of je bent ingelogd. Zo niet dan geeft hij het formulier weer. Ingelogd; dan mag je verder etc.
Ik gebruik de volgende regels in mijn .htaccess;
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mijndomein.nl [NC]
RewriteRule \.* /controleer.php [NC,R,L]
De RewriteCond is zodat hij het niet controleert als je intern van pagina naar pagina gaat.
Zoals je kunt zien gaat ieder verzoek nu naar "controleer.php". Maar alle bestanden worden daarheen gestuurd. Dus er ontstaat een lus.
Kan iemand mij vertellen hoe ik de index pagina kan uitsluiten? Het gaat er dus eigenlijk om dat als ik naar http://mijndomein.nl ga, ik de index wel te zien krijg en dat ik er anders naartoe gestuurd word. (naar controleer.php kan hij sowieso, want dat is een interne verwijzing)
Graag jullie hulp, want ik kom er niet uit :-(
Alvast bedankt!
ps. een submap aanmaken en daarop alles toepassen vind ik niet echt een optie!
RewriteRule .* -
Hiermee slaat hij de eerstvolgende rewriterule over.
Jacco Brandt op 25/11/2011 14:36:06:
RewriteCond %{REQUEST_URI} ^index.php$
RewriteRule .* -
Hiermee slaat hij de eerstvolgende rewriterule over.
[/quote]
Ik heb nu het volgende:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mijndomein.nl [NC]
RewriteCond %{REQUEST_URI} ^index.php$
RewriteRule .* -
RewriteRule \.* /index.php [NC,R,L]
Maar het werkt niet, wat doe ik verkeerd?
Bedankt :-)
//edit
Ik heb gevonden wat ik fout deed; dit werkt beter. Nu de andere fout nog oplossen! Bedankt:)
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mijndomein.nl [NC]
RewriteCond %{REQUEST_URI} ^/index.php$
RewriteRule .* -
RewriteRule \.* /index.php [NC,R,L]
RewriteRule .* -
Hiermee slaat hij de eerstvolgende rewriterule over.
[/quote]
Ik heb nu het volgende:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mijndomein.nl [NC]
RewriteCond %{REQUEST_URI} ^index.php$
RewriteRule .* -
RewriteRule \.* /index.php [NC,R,L]
Maar het werkt niet, wat doe ik verkeerd?
Bedankt :-)
//edit
Ik heb gevonden wat ik fout deed; dit werkt beter. Nu de andere fout nog oplossen! Bedankt:)
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mijndomein.nl [NC]
RewriteCond %{REQUEST_URI} ^/index.php$
RewriteRule .* -
RewriteRule \.* /index.php [NC,R,L]
Gewijzigd op 25/11/2011 16:39:28 door Bas van
Anders met php controloren, en de pagina includen?
@victor; dat kan niet, want dan kun je .jpg .doc .pdf etc wel gewoon openen. En dat mag ook niet! Daarom wil ik alles beveiligen met htaccess behalve dus 1 bestand om alles te controleren :)
en dan vervolgens index.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
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
<?php
if(ingelogd()) {
$url = explode('.', $_GET['url']);
$ext = array_shift(array_reverse($url));
//bepaal content - type ©[url]PHP.net/header[/url]
switch ($ext) {
case "pdf": $ctype="application/pdf"; break;
case "exe": $ctype="application/octet-stream"; break;
case "zip": $ctype="application/zip"; break;
case "doc": $ctype="application/msword"; break;
case "xls": $ctype="application/vnd.ms-excel"; break;
case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "jpeg":
case "jpg": $ctype="image/jpg"; break;
default: $ctype="application/force-download";
}
header('Content-Type: '. $ctype);
readfile($_GET['url']);
}
?>
if(ingelogd()) {
$url = explode('.', $_GET['url']);
$ext = array_shift(array_reverse($url));
//bepaal content - type ©[url]PHP.net/header[/url]
switch ($ext) {
case "pdf": $ctype="application/pdf"; break;
case "exe": $ctype="application/octet-stream"; break;
case "zip": $ctype="application/zip"; break;
case "doc": $ctype="application/msword"; break;
case "xls": $ctype="application/vnd.ms-excel"; break;
case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "jpeg":
case "jpg": $ctype="image/jpg"; break;
default: $ctype="application/force-download";
}
header('Content-Type: '. $ctype);
readfile($_GET['url']);
}
?>
even snel in elkaar gedraait..
Bedankt allemaal :)