Zurück   Flashforum > Flash und Server > PHP und MySQL

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 10-05-2010, 10:32   #1 (permalink)
Neuer User
 
Registriert seit: Mar 2010
Beiträge: 12
PHP - pseudo redirect

servus ...

ich schreibe gerade an einem eigenen kleinen framework und stehe vor folgendem problem. Ich habe in meinem frameworkverzeichniss ein unterverzeichniss controller/ in diesem verzeichniss liegen die einzelnen controller für ALLE html seiten meines projektes ctl.de.home.php (controller für www-url-tld/de/home/) oder ctl.en.news.newsarchiv.php (für www-url-tld/en/news/newsarchiv/). der aufruf dieser controller wird durch mein script soweit auch richtig gehandhabt.
zusätzlich habe ich noch "normale" verzeichnisse die nur eine index.php enthalten in der ein controller (oder eben auch kein controller) deklariert wird:

bsp. www-url-tld/de/home/ (verzeichnis ist dann "/de/home/")
PHP-Code:
// defines /de/home as controllername
define('CONTROLLER' str_replace('//','/',dirname($_SERVER['PHP_SELF'])); 
bsp. www-url-tld/home/ (bezieht sich auf "/home/")
PHP-Code:
// no controller defined -> redirect on $base->redirect->get_controller ();
// this will return /{%LNG%}/home as controllername
// define('CONTROLLER' , str_replace('//','/',dirname($_SERVER['PHP_SELF'])); 
der Aufruf erfolgt dann immer nach folgendem schema :
PHP-Code:
list($file_name$class_name) = $base->get_controller_details(CONTROLLER);
requireonce(CTL_DIR.$file_name);
$base->controller = new $classname
Die defines (als auch verzeichnisse mit den index.php) werden NUR dann gebraucht, wenn kein mod_rewrite (.htaccess) verfügbar ist. sobald mod_rewrite verfügbar ist kann ich (theoretisch) alle verzeichnisse bis auf mein framework) löschen.

mit .htaccess
wenn ich mit mod_rewrite arbeite (bietet nicht jeder ISP) läuft alles wie folgt:
(1) Umleitung JEDER request auf www-url-tld/mybasicscript.php
(2) auslesen von _SERVER['REDIRECT_URL'] (oder ...uri hab das net so genau im Kopf)
(3) ermitteln des richtigen controllers zur weiteren verarbeitung
Das funktioniert einwandfrei.
www-url-tld/de/news/newsarchiv/ landet ebenso wie
www-url-tld/news/newsarchiv/ und
www-url-tld/newsarchiv auf der richtigen Seite.


ohne .htaccess
ohne .htaccess kann ich "nur" gültige aufrufe zulassen.
normalerweise sollte meine verzeichnisstruktur etwa so aussehen:
HTML-Code:
<pre>
O www-url-tld
|
+-> de
| |
| +-> news
|   |
|   +-> newsarchiv
|
+-> en
| |
| +-> news
|   |
|   +-> newsarchiv
</pre>
wenn ich "nur" diese verzeichnisstruktur verwende funktioniert (siehe obiges beispiel) nur noch
www-url-tld/de/news/newsarchiv/

um die beiden anderen Aufrufe auch gültig zu machen müsste ich meine verzeichnisstruktur um folgendes ergänzen:
HTML-Code:
<pre>
|
+-> home
|
+-> news
| |
| +-> newsarchiv
|
+-> newsarchiv
</pre>
wenn ich nun davon ausgehe, dass ich
produkte/rubrik_1/
...
produkte/rubrik_n/

dokumentation/1995/rubrik_1/ ... ../rubrik_n/
...
dokumentation/2010/rubrik_1/ ... ../rubrik_n/

usw. anlege (ich gehe mal von einem grossen projekt aus) habe ich bei 25 rubriken 25 zusätzliche verzeichnisse (rubrik 1-25) und 375 zusätzliche verzeichnisse (1995/rubrik_1/ bis 2010/rubrik_25/) ... könnte etwas sehr unübersichtlich werden.

Um es gleich vorweg zu nehmen mit produkt.php?rubrik=x oder dokumentation.php?jahr=x&rubrik=y kann (bzw. will) ich nicht arbeiten, da die url alle für suchmaschinen optimiert bleiben (SEO).

daher nun meine frage gibt es einen (nicht .htaccess - da funzt alles ohne verzeichnisse (controller liegen seperat)) anderen weg diese URLs zu nutzen ohne die oben beschriebenen xxx verzeichnisse (für jeden möglichen (erlaubten) aufruf ein verzeichniss) anzulegen ?
Tigerente ist offline   Mit Zitat antworten
Alt 10-05-2010, 11:53   #2 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.868
Zitat:
gibt es einen anderen weg diese URLs zu nutzen ohne die oben beschriebenen xxx verzeichnisse anzulegen ?
NEIN! Der Server muss wissen, welche Datei er zurückgeben soll. für virtuelle Pfade musst du diesen Aufruf auf eine existierende Datei umleiten! und das wird mit mod_rewrite gemacht

vielleicht sagt dir dieser weg noch zu. nicht zwingend schön, aber machbar:

url: http://www.domain.tld/?pfad/pfad/wasauchimmer
und Zugriff über $_SERVER['QUERY_STRING'];

also keine parameterisierte URL!
musst dazu nur ein ? in die URL einfügen, ansonsten bleibt sie gleich.
__________________
greetz Thomas

plz RTFM & Coding Conventions

Geändert von thomas_E (10-05-2010 um 11:57 Uhr)
thomas_E ist offline   Mit Zitat antworten
Alt 10-05-2010, 12:41   #3 (permalink)
Neuer User
 
Registriert seit: Mar 2010
Beiträge: 12
Danke

Das war ja genau DAS was ich wissen wollte

Werde mein Projekt dahingehend ändern, das "shorturl" (www-url-tld/newsarchiv anstatt www-url-tld/de/news/newsarchiv) nur möglich sind wenn
a) der Benutzer entgegen der Empfehlung das feature aktiviert OHNE .htaccess nutzen zu können
b) .htaccess zur Verfügung steht

Man kann es ja keinem Webserver zumuten mit (im zweifelsfall) tausenden von verzeichnissen mit einer index.php zum indizieren meiner "shorturls" vollzumüllen.

Zitat:
vielleicht sagt dir dieser weg noch zu. nicht zwingend schön, aber machbar:

url: http://www.domain.tld/?pfad/pfad/wasauchimmer
und Zugriff über $_SERVER['QUERY_STRING'];
die idee hatte ich anfangs auch, aber da ja ausser dem controller (pfad/pfad/...pfad/) ja auch noch weitere daten angehängt sein können, die ich bei der überprüfung für den controller ausschliessen müsste, wird das zu performancelastig. die auswertung der _GET/_POST werte (QUERY_STRING) wird im controller definiert und auch nur dann ausgeführt, wenn die entsprechende webpage dies verlangt! Ein "Impressum" wird nie die auswertung von QUERYS brauchen Wenn ich von der parameterisierten URL weggehe müsste ich bei jedem seitenaufruf den QUERY auswerten.
Darüber hinaus ist durch das ? in der Url die SEO nicht mehr gegeben. Naja wer kein .htaccess nutzt wird halt "shorturls" nicht nutzen können (bzw. auf eigene gefahr)
Tigerente ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Pseudo 3D mit AS johanness ActionScript 1 5 08-12-2003 13:05
pseudo 3d ??? ExarKun Am Rande 4 06-05-2003 12:23
Php Redirect BadBird HTML und CSS 3 19-02-2003 11:20
pseudo 3d dpaetzold ActionScript 1 3 18-02-2003 16:09
MX Pseudo 3D Madokan Softwarearchitektur und Entwurfsmuster 18 17-02-2003 17:23


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:24 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele