Bei Klick auf einen Link wird ein 404-Fehler angezeigt!

Das Forum soll der Ablage von Lösungen für immer wieder auftauchende Problemstellungen dienen. // This forum contains solutions to problems that frequently occur.
Antworten
Benutzeravatar
dr.e.
Administrator
Beiträge: 4527
Registriert: 04.11.2007, 16:13:53

Bei Klick auf einen Link wird ein 404-Fehler angezeigt!

Beitrag von dr.e. » 22.12.2007, 00:32:30

Wenn ich die Demoseite downloade und installiere bekomme ich nach einem Klick auf einen beliebigen Link eine 404-Fehlermeldung angezeigt. Was kann ich dagegen tun?

Die Ursache dafür liegt darin, dass das URL-Rewriting des Apache-Webservers nicht aktiviert ist. Entweder ist im aktuell verwendeten "Virtual Host" nicht erlaubt RewriteRules in der .htaccess zu platzieren, oder das Apache-Modul wurde nicht geladen. Hier muss entweder in der VHOST-Konfiguration die Möglichkeit gegeben sein Konfigurations-Direktiven per

Code: Alles auswählen

  <Directory "[..]">
    [..]
    AllowOverride Options
    [..]
   </Directory>
zu platzieren oder in der httpd.conf muss das Rewrite-Modul per LoadModule geladen werden.
Viele Grüße,
Christian

Benutzeravatar
fliegermichl
Beiträge: 114
Registriert: 29.01.2008, 11:51:45
Wohnort: Echzell

Re: Bei Klick auf einen Link wird ein 404-Fehler angezeigt!

Beitrag von fliegermichl » 29.01.2008, 11:59:25

Hallo,

Mit dem URL Rewrite hängt das bei mir nicht zusammen. Ich denke, es ist ein Konfigurationsfehler.

Ich habe das Framework nach /srv/www/advphpfw und die Demo nach /srv/www/htdocs/advphpfw entpackt.
Mein Documentroot ist /srv/www/htdocs

Alle Links versuchen auf /Seite/* zuzugreifen statt /advphpfw/Seite/*
so wird auch das CSS File nicht gefunden.

Ich würde mir eine Beispielapplikation wünschen, welche dynamische Inhalte erzeugt (also einen Controller verwendet) aber dennoch VIIIEEELLLL einfacher als demosite ist.
Ich muss zugeben, dass ich nach dem Konsum der Documentation und der Tutorials noch kaum ein Deut schlauer geworden bin.

Gruß Michl

Benutzeravatar
fliegermichl
Beiträge: 114
Registriert: 29.01.2008, 11:51:45
Wohnort: Echzell

Re: Bei Klick auf einen Link wird ein 404-Fehler angezeigt!

Beitrag von fliegermichl » 29.01.2008, 14:32:34

Hallo,

vergiss den letzten Satz, ich habe das Tutoriel gefunden :-)
da steht, dass das framework unterhalb des Documentroot sein soll. An anderer Stelle hatte ich gelesen, dass nur die index.php unterhalb des Documentroot stehen soll und der Rest oberhalb. (aus Sicherheitsgründen)?

Grüße
Michl

Benutzeravatar
dr.e.
Administrator
Beiträge: 4527
Registriert: 04.11.2007, 16:13:53

Re: Bei Klick auf einen Link wird ein 404-Fehler angezeigt!

Beitrag von dr.e. » 30.01.2008, 00:03:08

Hallo fliegermichl,

zunächst sorry für die späte Antwort.

Schön, dass du eine Lösung in den Tutorials / der Dokumentation gefunden hast, ich werde das aber nochmal genauer in der README-Datei des Packages vermerken. Grund ist einfach, dass das Rewriting nicht funktionieren kann, wenn die index.php in einem Unterordner liegt, da sonst eine URL der Form

Code: Alles auswählen

/advphpfw/Seite/Startseite
in ein Parameter-Array

Code: Alles auswählen

Array {

[advphpfw] => Seite

}
und nicht
Array {

[Seite] => Startseite

}
umgewandelt wird. Die CSS-Dateien und Bilder können ebenso nicht auf dem Webserver gefunden werden, da diese im Quelltext mit

Code: Alles auswählen

<img src="/frontend/..." />
angegeben sind um auch bei einer URL der Form /Seite/Startseite/Param1/Value1/Param2/Value2 noch angezeigt zu werden. Was ich noch nicht ausprobiert habe, was aber durchaus funktionieren wird ist, für den genannten Ordner eine spezielle RewriteRule zu definieren, die das advphpfw aus dem Request-String entfernt und ohne diesen an die index.php weiterleitet. Das macht die Sache jedoch nicht einfacher und weniger fehleranfällig, ich rate daher dazu die index.php in den DocumentRoot zu legen.

Ich würde mir eine Beispielapplikation wünschen, welche dynamische Inhalte erzeugt (also einen Controller verwendet) aber dennoch VIIIEEELLLL einfacher als demosite ist.
Ich muss zugeben, dass ich nach dem Konsum der Documentation und der Tutorials noch kaum ein Deut schlauer geworden bin.
OK, nehme ich so mit. Eine Möglichkeit ist das Tutorial, in dem beschrieben wird, wie man eine einfache Webseite baut. Dieses findest du unter http://www.adventure-php-framework.org/ ... eErstellen. Wenn es noch einfacher sein soll, dann schreib mir doch kurz, wie deine Webseite aussehen soll und ich poste hier im Forum eine kurze Anleitung.

Ein paar kurze Worte zu einer einfachen Webseite:
Im Wesentlichen besteht eine Seite ja aus einem Menü - das sicher für den Anfanz statisch sein wird - und einem Contentbereich. Letzterer soll dynamisch gefüllt werden. Hierzu brauche ich nicht unbedingt einen Controller, man kann auch das

Code: Alles auswählen

<doc:createobject />
Tag verwenden um je nach URL-Parameter eine andere HTML-Datei, die unter ./frontend/content/ - parallel zur index.php - abgelegt sein muss. Syntax der Datei ist immer

Code: Alles auswählen

c_{Sprache}_{DateiName}.html
wobei Sprache für den ersten Fall einfach ein de ist, der Dateinamen ist der klein geschriebene URL-Parameter, der anzeigen soll, welche Seite geladen werden soll. Um die Seite zu betreiben musst du damit
  • die zentrale Konfiguration bereitstellen
  • eine index.php im DOCUMENT_ROOT ablegen
  • und eine Template-Datei erstellen, die den HTML-Code deines Menüs und den oben beschriebenen XML-Tag beinhaltet.
In der index.php musst du beim Laden des Templates den Pfad entsprechend anpassen und schon sollte deine Seite laufen.

Vielleicht beschreibst du mir, wie du das Beispiel gerne hättest und ich stelle dir ein solches zeitnah bereit.

da steht, dass das framework unterhalb des Documentroot sein soll. An anderer Stelle hatte ich gelesen, dass nur die index.php unterhalb des Documentroot stehen soll und der Rest oberhalb. (aus Sicherheitsgründen)?
An sich sollten die Dateien des Frameworks, deine Programmdateien und alle diejenigen Dateien, die nicht via HTTP zugänglich sein müssen ausserhalb des DocumentRoots liegen. Der Grund hierfür ist schlicht und ergreifend Sicherheit, denn der apps-Ordner enthält neben PHP-Dateien auch Text-Dateien, die Konfigurationsparameter enthalten, die nicht unbedingt in die Hände Dritter gelangen sollten. Im Demopackage, das man herunterladen kann habe ich deshalb eine .htaccess-Datei im apps-Ordner platziert, so dass der Zugriff auf diesem Ordner via HTTP verweigert wird. Alle Dateien, die für die Darstellung der Webseite benötigt werden (CSS, Bilder, ...) und die index.php sollten natürlich im DocumentRoot liegen, sonst wird es nix mit Webseite anzeigen. ;-) Wie die Daten dabei unter dem DOCROOT abgelegt sind, bleibt dir überlassen.
Viele Grüße,
Christian

Benutzeravatar
fliegermichl
Beiträge: 114
Registriert: 29.01.2008, 11:51:45
Wohnort: Echzell

Re: Bei Klick auf einen Link wird ein 404-Fehler angezeigt!

Beitrag von fliegermichl » 30.01.2008, 10:46:54

Hallo Christian,

Wie schon gesagt, ich hatte den ersten Eintrag geschrieben, bevor ich das Online Tutorial gefunden hatte. Ich hab mit demosite angefangen und das hat mich etwas erschlagen. Das Online Tutorial ist absolut ausreichend um die grundlegende Vorgehensweise kennen zu lernen. Vielleicht solltest Du das auf Deiner Webseite oben hinstellen und "Erste Schritte mit dem Adventure PHP Framework" nennen. Dann würde ein newbie nicht mit dem Demopackage anfangen.

Ich habe jetzt einen virtualhost aufgesetzt und die index.php, .htaccess und frontend/* ins Documentroot und alles andere darüber. und was soll ich sagen...

Kaum macht man's richtig, schon gehts.

Danke nochmal

Grüße Michl

Benutzeravatar
dr.e.
Administrator
Beiträge: 4527
Registriert: 04.11.2007, 16:13:53

Re: Bei Klick auf einen Link wird ein 404-Fehler angezeigt!

Beitrag von dr.e. » 30.01.2008, 16:18:56

Hallo Michl,

freut mich, dass deine lokale Installation nun funktioniert. Danke auch für deinen Tipp, ich werde das Tutorial auf die Startseite bringen. Solltest du weitere Fragen haben, einfach einen neuen Thread eröffnen.
Viele Grüße,
Christian

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste