kostenloser Webspace werbefrei: lima-city


Weiterleitung Script

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    t****3

    Hallo,
    ich habe noch ein Problem und zwar egal von welcher Domain ich komme ich werde immer in die /page/index.php weitergeleitet was der folgende Script auch macht.

    Ich bräuchte es noch so, das wenn ich von einer bestimmten Domain komme bsp:
    http://abc.de und dann folgendes eingebe http://abc.de/33

    dass ich dann hier rauskomme: http://abc.de/folder1/folder2/33

    gebe ich dann nur http://abc.de dann sollte man ganz normal weitergeleitet werden.. wie hier:

    RewriteEngine on
    RewriteBase /
    RewriteCond %{REQUEST_URI} ^/index\.(html|htm|php)$
    RewriteRule index\.(html|htm|php)$ /site/index.php [R,L]
    RewriteCond %{REQUEST_URI} ^/$
    RewriteRule (.*)$ /site/index.php [R,L]
    DirectoryIndex index.php index.html index.htm


    Gruß & Danke
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Ich kann dir nicht so ganz folgen.
    Kommt der Besucher von einer externen Seite oder soll deine Angabe mit abc.de bedeuten, dass es dieselbe Seite ist?

    Was bezweckst du damit?

    Dein versuch jemanden umzuleiten nennt man Routing.
    Und ich würde dir das lieber mit z. B. PHP empfehlen umzusetzen, anstatt mod_rewrite dafür zu verwenden.
    Bei den PHP-Frameworks bieten Zend Framework und Laravel als Beispiel Routing an und ist auch recht einfach anzuwenden.
    Ob jetzt Drupal, CodeIgniter usw. das auch bieten, kann ich nicht sagen, aber mich würde es wundern wenn nicht.

    Hast du dir ansonsten schon einmal reguläre Ausdrücke dafür angeschaut? Es gibt auch Online-Editoren, um deinen Versuch zu testen.
    Speziell in deinem Fall für die HTACCESS.
  4. Autor dieses Themas

    t****3

    Hallo,

    ja ungefähr, also wenn jemand folgendes eingippt:
    http://abc.de/33

    dann sollte er hier im Verzeichniss landen:
    http://abc.de/folder1/folder2/33

    weiterhin sollte nur der Link im Browserfenster sichtbar sein:
    http://abc.de/33

    aber er befindet sich schon in den Unterordner.. http://abc.de/folder1/folder2/33

    Gruß :)
  5. Da will ich dir mal keine Hoffnung machen.
    Erstens geht das nicht ohne einen Frame zu benutzen.
    Und selbst wenn, was soll das bringen?
    Warum soll der Besucher nicht die URL sehen?
    Entschuldige, aber das macht alles keinen Sinn mit dieser Geheimniskrämerei.

    Wie gesagt, wenn du das mit vernünftigen Routen löst z. B. über die oben genannten Frameworks oder indem du dir selber einen Controller schreibst, der dieses Routing übernimmt, kannst du deine Inhalte entsprechend in deine "gewünschte" URL laden.
    Sprich http://www.abc.de/33 wird aufgerufen und das Skript lädt sämtliche Daten aus dem Unterverzeichnis in diese Datei und gibt sie dann aus.

    Eventuell wird dein Vorhaben deutlicher wenn du Klartext reden könntest und den Sinn dahinter erklären kannst.
  6. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    kgreen schrieb:
    Da will ich dir mal keine Hoffnung machen.
    Erstens geht das nicht ohne einen Frame zu benutzen.
    Soweit ich die Frage des TE verstanden habe ist das sehrwohl möglich.

    kgreen schrieb:
    Warum soll der Besucher nicht die URL sehen?
    Er sieht doch eh eine URL, aber eben nicht den Namen der Datei, wie sie am Server liegt.

    kgreen schrieb:
    Wie gesagt, wenn du das mit vernünftigen Routen löst z. B. über die oben genannten Frameworks oder indem du dir selber einen Controller schreibst, der dieses Routing übernimmt, kannst du deine Inhalte entsprechend in deine "gewünschte" URL laden.
    Das ist vollkommen unnötig und mit einer einfachen
    .htaccess
    -Datei mit geeigneten Regeln sehr viel einfacher möglich.

    kgreen schrieb:
    Eventuell wird dein Vorhaben deutlicher wenn du Klartext reden könntest und den Sinn dahinter erklären kannst.
    Vermutlich ist der Sinn der Frage für eine Lösung gar nicht nötig.

    @TE:
    Versuch mal bei deinen Rewrite-Regeln das
    R
    wegzulassen.

    Also z.b. so (ungetestet):
    RewriteRule ^$ /seite/index.php [L]
    RewriteRule ^([^/]*)$ /verzeichnis/$1.php [L,QSA]
  7. hackyourlife schrieb:
    Das ist vollkommen unnötig und mit einer einfachen
    .htaccess
    -Datei mit geeigneten Regeln sehr viel einfacher möglich.

    Das ist aber eher die Ausnahme als die Regel. In keinem unserer Projekte der letzten Jahre haben wir jemals eine .htaccess mehr zu tun gegeben, als nötig.
    Selbst kleinste Projekte mit nur zwei oder drei Controllern haben ein Routing über PHP erfahren.

    Ich will damit nicht sagen, dass es falsch ist, deine Lösung funktioniert übrigens so wie du sie angeschrieben hast. Die erste Regel fällt selbstverständlich durch, aber die Zweite leitet auf das definierte Verzeichnis um. Aber auch wenn es einem nicht zusteht hier jemanden zu belehren, es hilft ihm für die Zukunft nicht viel weiter solch einen Workaround anzuwenden.

    Wenn es nur ein Hobby ist ... dann bin ich jetzt ruhig, aber sollte es mal etwas ernsteres werden, dann bitte lieber Routing mit PHP anschauen.
    Ich will ja nur nicht, dass der Junge auf die schiefe Bahn gerät. :biggrin:
  8. Autor dieses Themas

    t****3

    Ja. Das Problem ist ich habe einen Urlkürzer gebe ich eine laaaange URL ein dann wird diese gekürzt soweit ja so gut. Nur habe ich den URL kürzer in folgende Ordner ../url/kurz/ jetzt wenn ich eine URL gekürzt habe dann macht es mir folgendes daraus: http://www.link.de/url/kurz/22 jetzt wollte ich das ich diese so aufrufen kann http://www.link.de/22

    Gruß
  9. Hallo

    einen "Urlkürzer" aka Short-URL Service
    würde ich nicht mit .htaccess direkt machen, sondern mit
    header("Location .... ");
    als Weiterleitung

    Du Speicherst die Link-Nummer (ID) und den langen Link (Ziel-URL) in einer Datenbank (oder CSV)
    und kannst dann bei Aufruf http://abc.de/33 per .htaccess umleiten auf z.B. umleitung.php?id=33

    RewriteEngine on
    RewriteBase /
    RewriteCond %{REQUEST_URI} (.*)$
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([^/]*)$ /script/umleitung.php?id=$1 [L]


    In der umleitung.php dann aus der Datenbank den langen Link (Ziel-URL) zur $_GET['id'] auslesen

    und per
    header("Location .... ");
    zu dieser langen Link (Ziel-URL) weiterleiten.

    if (!empty($_GET['id'])) { 
    $run_id = trim($_GET['id']); 
    
    $sql = "SELECT * FROM link_tabelle WHERE id = '".$run_id."' LIMIT 1"; 
    $res = mysql_query($sql);
    $row = mysql_fetch_row($res); 
    
    $long_url = $row[1]; 
    header("Location:".$long_url); 
    exit(); 
    }


    also .htaccess nicht für jeden einzelnen Link, sondern nur zur übergabe der ID an ein PHP-Script
    und die Weiterleitung zur Ziel-Adresse dann mit header() ...

  10. Wie groß ist dein Projekt?
    Ist es "noch" ein Hobby oder wird das mal etwas, was länger Bestand haben sollte?

    Such bei Google einfach mal nach "PHP Routing". Du kannst auch noch "Tutorial" hinten dran hängen.
    Ziemlich am Anfang findest du ein kleines Tutorial, ca. 19 Minuten, wie man sich ein kleines Routing in PHP selber bastelt, wenn man kein Framework verwendet.

    Sollen da evtl. noch mehrere Routen hinzukommen?
    Egal wie, ich würde lieber jetzt damit anfangen, dass ganze auf stabile Beine zu bekommen, bevor du dich nachher tagelang mit dem Umbau beschäftigen musst.
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!