htaccess
Dit heeft niks met PHP te maken, en includeren van deze bestanden is zonloos en zal alleen maar everechts werken, want het is een tekstbestand welke buiten de webserver om opgeroepen wordt.
Snap je?
maar hoe ik die moet oproepen, al sla je me dood ik zou het niet weten.
En dat het niks met php of iets dergelijks te maken heeft kan ik nu ook wel snappen.
Maar ik heb weer een andere geprobeerd van een andere site en daar stond dat ik ook een .htpasswd moest aanmaken, maar die word weer op geslagen als een gewoon Tekstdocument en niet zoals htaccess die in de map staat zonder naam met het type HTACCESS-bestand, en ik neem aan dat htpasswd ook zo iets dergelijks moet.
maar die nieuwe zoals hier onder de blokkerd de map waar die instaat die daardoor niet zichtbaar is in wamp, ik heb dat in de map includes gezet en nu blokkeerd die de header.php en daar mee ook de style, maar wat ik dan niet begrijp is dat de inhoud van de admin en de members wel geeft want die worden daarin ook geinclude.
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
AuthUserFile C://wamp/www/biljart/admin/team_toevoegen.php/.htpasswd
AuthGroupFile /dev/null
AuthName "Password Protected Area"
AuthType Basic
<limit GET POST>
require valid-user
</limit>
AuthGroupFile /dev/null
AuthName "Password Protected Area"
AuthType Basic
<limit GET POST>
require valid-user
</limit>
en ik weet niet of die AuthUserFile goed is.
Gewijzigd op 20/09/2013 15:38:02 door Niek Kasius
Quote:
maar wat ik dan niet begrijp is dat de inhoud van de admin en de members wel geeft want die worden daarin ook geinclude.
Huh?
Gewijzigd op 20/09/2013 16:02:47 door - Ariën -
maar wat ik dan niet begrijp is dat de inhoud van de admin en de members wel geeft want die worden daarin ook geinclude.
Daar mee bedoel ik omdat de map includes nu niet meer zichtbaar is in de localhost ik ook geen header en de style te meer zien krijg als ik een script open omdat de include staan in alle scripts in de map, maar dat die wel de inhoud zelf die ook include staan wel weer geeft, de config en de admininhoud worden wel geplaatst maar de header met daarin een link naar de style niet.
Dus zoals hieronder
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
session_start();
ini_set('display_errors',1); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);
include ("../includes/header.php");
include ("../includes/config.php");
?>
<div id="main_container">
<div id="header">
bla bla
</div>
<div id="content">
<?php
include "../includes/admininhoud.php";
?>
</div>
</div>
session_start();
ini_set('display_errors',1); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);
include ("../includes/header.php");
include ("../includes/config.php");
?>
<div id="main_container">
<div id="header">
bla bla
</div>
<div id="content">
<?php
include "../includes/admininhoud.php";
?>
</div>
</div>
En dat vind ik vreemd.
als je begrijpt wat ik bedoel
Gewijzigd op 20/09/2013 18:07:23 door Niek Kasius
Niek Kasius op 20/09/2013 18:05:03:
maar wat ik dan niet begrijp is dat de inhoud van de admin en de members wel geeft want die worden daarin ook geinclude.
include?!
Niek Kasius op 20/09/2013 18:05:03:
Daar mee bedoel ik omdat de map includes nu niet meer zichtbaar is in de localhost ik ook geen header en de style te meer zien krijg als ik een script open omdat de include staan in alle scripts in de map, maar dat die wel de inhoud zelf die ook include staan wel weer geeft, de config en de admininhoud worden wel geplaatst maar de header met daarin een link naar de style niet.
als je begrijpt wat ik bedoel
als je begrijpt wat ik bedoel
Geen idee wat je bedoelt. Plaats eens wat punten en hoofdletters in die zin.
Sinds je werkt met htaccess zie je de map includes niet meer?
de vraag van TS is waarom je via PHP wel een .htaccess bestand of een door een .htaccess afgeschermde directory kunt openen en via de browser niet.
neem het onderstaande goed in je op:
PHP draait op de webserver. Op de webserver draait ook Apache, anders zou het geen webserver zijn. PHP en Apache draaien dus naast elkaar op dezelfde computer en vormen een webserver.
Apache luistert via poort 80 naar de rest van de wereld. Omdat er in de wereld ook mensen zijn met minder goede bedoelingen zit er in Apache een lange lijst met (optionele) veiligheidsmaatregelen ingebouwd. zeg maar een soort firewall. één onderdeel van deze firewall zijn de .htaccess bestanden waarmee de beveiliging op directory niveau ingesteld kan worden.
Dus voor al het verkeer van buitenaf zijn die die regels in de .htaccess bestand van toepassing.
Alleen nu is het wel zo dat het PHP programma zoals hierboven uitgelegd naast Apache op dezelfde server staat en als het php programma een php script aan het uitvoeren is waarin staat om een bestand te openen uit een bepaalde directory dan doet het php programma dat. het php programma heeft apache namelijk helemaal niet nodig om bij de bestanden te komen want de bestanden staan voor php op de eigen computer. Sterker nog PHP kan helemaal zonder apache functioneren alleen zal de output niet meer naar een andere computer verstuurd worden.
Toevoeging op 21/09/2013 01:07:35:
nog een klein scriptje om het nog iets te verduidelijken:
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
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
<?php
$dir_name = 'private_map';
$filename = 'secret.txt';
$content = 'Dit is een geheime tekst.';
// -----------------------------------------------------
// installatie gedeelte
// -----------------------------------------------------
// maak een directory aan die we gaan afschermen met een .htaccess file
@mkdir($dir_name);
// maak in deze directory een test-bestandje en een .htaccess bestand
file_put_contents($dir_name . '/' . $filename, $content);
file_put_contents($dir_name . '/.htaccess', 'Deny from all');
// -----------------------------------------------------
// test gedeelte
// -----------------------------------------------------
echo 'Goed nu zal ik proberen om de inhoud van het bestand ' . $filename . ' aan u te laten zien.<br>';
echo 'De inhoud van het bestand is: <strong>' . file_get_contents($dir_name . '/' . $filename) . '</strong><br><br>';
echo 'Probeer nu zelf het bestand op te vragen: <a href="' . $dir_name . '/' . $filename . '">klik</a>';
?>
$dir_name = 'private_map';
$filename = 'secret.txt';
$content = 'Dit is een geheime tekst.';
// -----------------------------------------------------
// installatie gedeelte
// -----------------------------------------------------
// maak een directory aan die we gaan afschermen met een .htaccess file
@mkdir($dir_name);
// maak in deze directory een test-bestandje en een .htaccess bestand
file_put_contents($dir_name . '/' . $filename, $content);
file_put_contents($dir_name . '/.htaccess', 'Deny from all');
// -----------------------------------------------------
// test gedeelte
// -----------------------------------------------------
echo 'Goed nu zal ik proberen om de inhoud van het bestand ' . $filename . ' aan u te laten zien.<br>';
echo 'De inhoud van het bestand is: <strong>' . file_get_contents($dir_name . '/' . $filename) . '</strong><br><br>';
echo 'Probeer nu zelf het bestand op te vragen: <a href="' . $dir_name . '/' . $filename . '">klik</a>';
?>
Sinds je werkt met htaccess zie je de map includes niet meer?
[/quote]
Ja
Ik heb een map met de naam biljart, En daarin staan 3 sub mappen, admin, images en includes. En in die laatste staat een .htaccess bestand.
En als ik nou de browser open met Wamp en daarin de map "biljart" open is die sub map includes niet meer zichtbaar,
En de oorzaak daarvan is dat er een HTACCESS-bestand en een HTPASSWD-bestand in staat.
De map bestaat wel want daarin staan behalve de 2 bovenstaande ook nog de config.php, header.php, style.css admininhoud.php, member_tekst.html.
En nu vind ik het vreemd dat de config, admininhoud en member_tekst wel in de andere scripten werken blijven maar de header en daarmee ook de <link> met de style niet werken.
Ja Obelix terwijl ik dit een het typen ben hoor ik je denken "dat kan niet" maar toch is het zo.
In bijna al mijn andere mappen staat een sub map "includes"
En als ik die open zijn ze allemaal zichtbaar in de browser.
Ik heb nog ff een testje gedaan en in een andere map ook een andere .htaccess geplaatst met:
order deny,allow
allow from 127.0.0.1
deny from all
en daarin laat de de map wel zien, maar ook daar word de header geblokkerd.
Dus is mijn conclusie weg ermee, en niet meer gebruiken
Gewijzigd op 21/09/2013 02:20:48 door Niek Kasius
Niek Kasius op 21/09/2013 02:18:16:
Ik heb een map met de naam biljart, En daarin staan 3 sub mappen, admin, images en includes. En in die laatste staat een .htaccess bestand.
En als ik nou de browser open met Wamp en daarin de map "biljart" open is die sub map includes niet meer zichtbaar,
En de oorzaak daarvan is dat er een HTACCESS-bestand en een HTPASSWD-bestand in staat.
De map bestaat wel want daarin staan behalve de 2 bovenstaande ook nog de config.php, header.php, style.css admininhoud.php, member_tekst.html.
En nu vind ik het vreemd dat de config, admininhoud en member_tekst wel in de andere scripten werken blijven maar de header en daarmee ook de <link> met de style niet werken.
En als ik nou de browser open met Wamp en daarin de map "biljart" open is die sub map includes niet meer zichtbaar,
En de oorzaak daarvan is dat er een HTACCESS-bestand en een HTPASSWD-bestand in staat.
De map bestaat wel want daarin staan behalve de 2 bovenstaande ook nog de config.php, header.php, style.css admininhoud.php, member_tekst.html.
En nu vind ik het vreemd dat de config, admininhoud en member_tekst wel in de andere scripten werken blijven maar de header en daarmee ook de <link> met de style niet werken.
Probeer het onderscheid tussen lokale toegang en externe toegang te begrijpen.
Dit is het probleem: .htaccess blokkeert de HTTP-toegang. Daar staan de eerste twee letters ht van .htaccess voor. Daardoor kun je het HTML-bestand member_tekst.html niet openen via http://... en daardoor kan een browser style.css ook niet laden via een <link>-tag met daarin een http://....
Gebruik de directory /includes/ uitsluitend voor bestanden die door de webserver moeten worden gebruikt; aan lokale toegang komt geen HTTP-verkeer te pas. Verplaats andere bestanden die extern toegankelijk moeten zijn naar directory's zoals /css/ voor CSS-bestanden.
Gewijzigd op 21/09/2013 07:40:29 door Ward van der Put
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
- [public_html]
|
|- [css]
|- [images]
|- [includes]
|- [javascript]
|- index.php
|
|- [css]
|- [images]
|- [includes]
|- [javascript]
|- index.php
hierbij moeten css, images en javascript ALTIJD publiekelijk toegankelijk zijn.
Denk na:
de browser haalt als eerst ALLEEN de HTML op die in index.php staat. in die html staat bijvoorbeeld dit:
Dit is lauter text, dit is niet het css bestand. Hoe denk je dat de browser dan aan het css bestand komt?
Hij doet een tweede request (aanvraag) bij de webserver. Maar deze keer vraag de browser om "css/mystyle.css" inplaats van index.php. de Browser loopt in jouw geval nu tegen de .htaccess op en krijgt het css bestand niet van de webserver. en terecht ook!