• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Anhand von URL Seite dynamisch generieren

paoloposo

Mitglied
Hallo Community,

ich wüsste gerne ob folgendes möglich ist und wenn ja, wie man es umsetzt:

Der Seitenbesucher ruft zum Beispiel die Seite www.example.com/about[/index.php] auf. Der Server fängt diesen Aufruf ab und kann den Pfad dann zum Beispiel mit einer Datenbank abgleichen und daraus eine Seite generieren, auch wenn der Ordner /about/ nicht existiert.
Muss für so etwas ein Programm auf dem Server laufen oder geht das auch mit ein bisschen PHP?

Ich hoffe, ich habe mich verständlich ausgedrückt. Wenn nicht, einfach fragen!

LG, activegaming
 
Habe gerade durch Zufall in einem anderen Thread das Modul mod_rewrite bemerkt - ich denke, das ist genau das, was ich suche.
Wen dem tatsächlich so ist, werde ich den Thread als gelöst markieren.
 
Hallo,

ja mod_rewrite macht zumindest ein teil der rest halt php.

als erledigt kannst nur du das machen, im ersten beitragm hacken setzten bei bearbeiten.

Cheffchen
 
Erstmal vielen Dank für die Antwort.

Ich hab noch eine Frage dazu. Mein Code sieht jetzt so aus:
Code:
RewriteEngine on

RewriteCond %{SCRIPT_NAME} !-f
RewriteRule ^([0-9a-zA-Z\-_]+)$ scripts/php/quicklink.php?$1


RewriteCond %{SCRIPT_NAME} -f
RewriteRule ^(.*(\.php|\.html|\.htm)?)$ scripts/php/render.php?$1

Der Plan sieht folgendes vor: Der User ruft zum Beispiel www.example.com/1234 auf, wobei 1234 ein Quicklink ist, der den User auf www.example.com/beitrag/irgendwas umleiten soll. Diesen Part übernimmt das Script quicklink.php und das funktioniert soweit.
Die zweite Regel soll die Url der aufgerufenen Seite an das Script render.php übergeben (Beispiel: www.example.com/impressum/). Ich möchte nämlich in die einzelnen Dateien nur den tatsächlichen Seiteninhalt schreiben und render.php soll diesen dann auslesen und zusammen mit dem Layout ausgeben. In der Addressleiste soll aber nicht scripts/php/render.php?impressum/ stehen, sondern www.example.com/impressum/.

Ich hoffe, ich konnte mich einigermaßen verständlich ausdrücken :mrgreen:
 
Hallo,


das einer ist /23ijo23 und das soll per quicklink.php weiter verarbeitet werden
das andere ist /impressum und soll per render.php verarbeitet werden

so und nun sage mal bitte wo her wer wissen soll das eine bei quicklink und das ander auf render geleitet werden soll?

also musst da was ändern, entweder die quicklinks zb immer mit xx beginnen oder enden oder Seiten Links haben immer ein .html am ende.

dann vielleicht so, natürlich ungetestet
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.htm$ scripts/php/render.php?$1&%{QUERY_STRING} [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9a-zA-Z\-_]+)$ scripts/php/quicklink.php?$1

Cheffchen
 
so und nun sage mal bitte wo her wer wissen soll das eine bei quicklink und das ander auf render geleitet werden soll?

Na ja, wenn die Datei nicht existiert soll überprüft werden ob es ein Quicklink ist, ansonsten soll sie an render.php übergeben werden.
Aber vermutlich ist es einfacher wenn ich den Scriptnamen immer an render.php übergebe und dann mit PHP prüfe, ob die Datei existiert und so weiter. Diese Regel
Code:
RewriteRule ^(.*)$ scripts/php/render.php?$1
funktioniert aber nicht, soll heißen render.php bekommt immer sich selbst übergeben.
 
Klappt immer noch nicht, aber ich habe mal test-weise ein phpinfo() in die render.php geschrieben und die aufgerufene Seite tauchte bei REDIRECT_URL und REQUEST_URI auf.
Wie kann ich den Beitrag als gelöst markieren? Haken habe ich keinen gefunden.
 
Da gibts nur "Druckbare Version zeigen", "Thema weiterempfehlen", "Thema abbonieren" und "Umfrage hinzufügen", aber nix zum gelöst markieren.
 
Zurück
Oben