Adressieren
treziman
- webhosting
0 Sven Rautenberg0 treziman0 ChrisB0 treziman0 Der Martin0 treziman0 Der Martin0 ChrisB
Hallo,
bin gerade dabei, mein Projekt ins Web zu stellen. Nun fangen die Probleme an. Die Startdatei (index.php) findet die CSS-Datei nicht. Das ganze sieht so aus, gestaltet gemäss Anleitung hier aus dem Forum vor ca. 4 Monaten:
Domain besteht aus zwei Ordnern:
domain
verboten
Die Webadresse (http://www.domain.de) leitet in den Ordner 'domain', wo sich die index.php befindet. Geht.
Im Ordner 'verboten' (Beispielname) befindet sich ein Unterordner 'css', worin die CSS-Dateien sind.
In der index.php kommt nun die Zeile:
<link rel="stylesheet" type="text/css" href="http://www.domain.de/verboten/css/start.css">
Das diese CSS-Datei nicht gefunden wird, ist klar, aber
<link rel="stylesheet" type="text/css" href="http://www.domain.de/../verboten/css/start.css">
müsste doch funktionieren???
Tuts aber nicht. Verlagere ich testweise die start.css in denselben Ordner 'domain', geht es.
Ich habe jetzt verschiedene Konstellationen in der Adressierung versucht. Was mache ich falsch?
Danke und Gruss
Thorsten
Moin!
Die Webadresse (http://www.domain.de) leitet in den Ordner 'domain', wo sich die index.php befindet. Geht.
Im Ordner 'verboten' (Beispielname) befindet sich ein Unterordner 'css', worin die CSS-Dateien sind.
In der index.php kommt nun die Zeile:
<link rel="stylesheet" type="text/css" href="http://www.domain.de/verboten/css/start.css">
> Das diese CSS-Datei nicht gefunden wird, ist klar, aber
> ~~~html
> <link rel="stylesheet" type="text/css" href="http://www.domain.de/../verboten/css/start.css">
>
müsste doch funktionieren???
Nein, du kannst nicht in das Verzeichnis "oberhalb" des DOCUMENT_ROOT gelangen, diese beiden URLs sind de facto identisch. Wenn "domain" dein DOCUMENT_ROOT ist, müssen alle Ressourcen, die der Webserver ausliefern soll, dort und in Unterverzeichnissen liegen.
Es ist ja sowieso paradox: Wieso lagerst du eine Ressource, die öffentlich sein soll, in einem Geheimordner?
- Sven Rautenberg
Hallo Sven,
danke für Deine Antwort.
Paradox ist es eigentlich nicht. In dem Ordner 'domain' sind nur ein paar Dateien, die eben öffentlich sind. Das meisste spielt sich nach einem login im 'Geheimen' ab.
Um mein Problem zu lösen, müsste ich also mein DOCUMENT-ROOT ein Verzeichnis nach oben verschieben, die Domain darauf zeigen lassen und eine Datei erstellen, die auf die index.php im Verzeichnis 'domain' verweist? Also quasi zwei index.php. Dann müsste ich auch absolut adressieren können. Probier ich mal!
Gruss
Thorsten
Hi,
Um mein Problem zu lösen, müsste ich also mein DOCUMENT-ROOT ein Verzeichnis nach oben verschieben, [...]
Nein, „müsstest“ du nicht.
Viel sinnvoller wäre es, wenn du eine CSS-Datei, die als öffentliche Ressource erreichbar sein soll, einfach auch an einer öffentlich per HTTP erreichbaren Stelle ablegst.
MfG ChrisB
Hallo Chris,
(komme gerade nicht auf meinen Provider, habs daher noch nicht probiert)
Es gibt aber im öffentlichen Bereich, in den Skripten dort, noch andere Stellen, von denen aus ich in den verbotenen Bereich verweise. Z.B mittels a - tag. Wenn ich den DOCUMENT - ROOT nicht nach oben verschiebe, wie soll ich denn dann den verbotenen Bereich erreichen können?
Gruss
Thorsten
Hallo,
Es gibt aber im öffentlichen Bereich, in den Skripten dort, noch andere Stellen, von denen aus ich in den verbotenen Bereich verweise. Z.B mittels a - tag. Wenn ich den DOCUMENT - ROOT nicht nach oben verschiebe, wie soll ich denn dann den verbotenen Bereich erreichen können?
du bringst zwei Dinge durcheinander - nämlich
1. Daten, die nur für einen bestimmten Benutzerkreis zugänglich sein sollen, z.B. nach Login, und
2. Daten, die über HTTP *gar nicht* zugänglich sein sollen, sondern nur z.B. für PHP-Scripte.
Alles, was irgendwie von außerhalb des Servers zugänglich sein soll, ob mit oder ohne Login, *muss* im Domain-Root oder einem untergeordneten Verzeichnis liegen (Punkt 1).
Es gilt der Umkehrschluss: Alles, was nicht im Domain-Root oder unterhalb davon liegt, ist von außen nicht zugänglich (Punkt 2).
Nun alle Klarheiten beseitigt?
So long,
Martin
Hallo Martin,
- Daten, die nur für einen bestimmten Benutzerkreis zugänglich sein sollen, z.B. nach Login, und
- Daten, die über HTTP *gar nicht* zugänglich sein sollen, sondern nur z.B. für PHP-Scripte.
Das ist mir schon soweit klar. Ich frage mich nun, wie ich eine Datei (Skript), die NICHT im Document-Root Verzeichnis liegt, von einer Datei aus aufrufe, die im Document-Root liegt. Nochmal zur Verdeutlichung:
Domain: 'http://www.domain.de' -> zeigt in Verzeichnis 'domain' (Document-Root). Hier liegt die index.php. Darin ein Verweis z.B. <a href='http://www.domain.de/verboten/example.php'>...</a> (was ja nicht funktioniert).
Wie muss ich nun adressieren, um von der index.php im Verzeichnis 'domain' die example.php im Verzeichnis 'verboten' aufzurufen, oder was muss ich ändern?
Gruss
Thorsten
Hallo,
- Daten, die nur für einen bestimmten Benutzerkreis zugänglich sein sollen, z.B. nach Login, und
- Daten, die über HTTP *gar nicht* zugänglich sein sollen, sondern nur z.B. für PHP-Scripte.
Das ist mir schon soweit klar.
ich hatte nicht den Eindruck ...
Ich frage mich nun, wie ich eine Datei (Skript), die NICHT im Document-Root Verzeichnis liegt, von einer Datei aus aufrufe, die im Document-Root liegt.
Von außen? Überhaupt nicht. Es geht nicht.
Wie muss ich nun adressieren, um von der index.php im Verzeichnis 'domain' die example.php im Verzeichnis 'verboten' aufzurufen, oder was muss ich ändern?
Du musst das Verzeichnis "verboten" eine Ebene tiefer anlegen, so dass es ein Kindverzeichnis des Domain-Root wird. Anders geht's nicht.
Ciao,
Martin
Hallo,
Du musst das Verzeichnis "verboten" eine Ebene tiefer anlegen, so dass es ein Kindverzeichnis des Domain-Root wird. Anders geht's nicht.
Danke, Martin! Das wollte ich wissen.
Den Artikel zum Referenzieren habe ich hier gelesen. Daher kam ich drauf, eine zweite index.php anzulegen und den Document-Root eins höher zeigen zu lassen. Etwa so:
Document-Root - Inhalt:
'verboten' (Verzeichnis)
'example' (Verzeichnis)
index.php
robots.txt
Klar, so kann ich auch den gesamten Ordner 'verboten' in der robots.txt sperren.
Inhalt index.php z.B.:
...
header ("location: http://www.domain.de/example/index.php");exit;
...
Das werde ich mal versuchen...sobald ich meinen Provider erreiche.
Danke Euch nochmal!
Gruss
Thorsten
Hallo,
nochmal kurz zur Info.
Den Artikel zum Referenzieren habe ich hier gelesen. Daher kam ich drauf, eine zweite index.php anzulegen und den Document-Root eins höher zeigen zu lassen. Etwa so:
Document-Root - Inhalt:
'verboten' (Verzeichnis)
'example' (Verzeichnis)
index.php
robots.txtKlar, so kann ich auch den gesamten Ordner 'verboten' in der robots.txt sperren.
Inhalt index.php z.B.:
...
header ("location: http://www.domain.de/example/index.php");exit;
> ...
Habs so gemacht - klappt prima!
Gruss
Thorsten
Hi,
Das ist mir schon soweit klar.
Scheint nicht so:
Ich frage mich nun, wie ich eine Datei (Skript), die NICHT im Document-Root Verzeichnis liegt, von einer Datei aus aufrufe, die im Document-Root liegt.
Sofern du mit „Aufrufen“ eigentlich einen HTTP-Request nach der Ressource durch den Client meinst - dann *gar* *nicht*, wenn dieses andere Verzeichnis nicht unterhalb des Web-Roots liegt, oder im anderen Falle wenigstens ein entsprechender ALIAS o.ä. dafür eingerichtet wurde.
Nochmal zur Verdeutlichung:
Domain: 'http://www.domain.de' -> zeigt in Verzeichnis 'domain' (Document-Root). Hier liegt die index.php. Darin ein Verweis z.B. <a href='http://www.domain.de/verboten/example.php'>...</a> (was ja nicht funktioniert).
Wie muss ich nun adressieren, um von der index.php im Verzeichnis 'domain' die example.php im Verzeichnis 'verboten' aufzurufen, oder was muss ich ändern?
Wen
/.../domain/
das Web-Root ist,
und du aus
/.../domain/index.php
schlicht und einfach
/.../domain/verboten/example.php
„aufrufen“ willst - dann, in dem du die sich daraus ergebenede HTTP-Adresse
http://www.domain.de/verboten/example.php
einfach verlinkst. Wenn du nicht auf, auf welche Arten das alles geht, dann lies bitte das Grundlagenkapitel Referenzieren in HTML.
Wenn das „nicht funzt“, dann machst du es entweder immer noch nicht richtig - oder die Verzeichniskonstellation (und ggf. Konfiguration) ist nicht wirklich die, die du uns bisher hier dargestellt hast.
MfG ChrisB