htaccess über php + ajax überprüfen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • htaccess über php + ajax überprüfen

    hi zusammen

    ist es möglich auf htaccess zuverlässig zu überprüfen ?

    das vorhandensein des apache moduls "mod_rewrite" ist ja alleine nicht ausschlaggebend.
    ich kenne webspaces, wo der mod enabled ist, aber htaccess dateien immer zu 404 fehlern führen.

    ich dachte mir jetzt über php (mkdir und fopen(...'w')) ein verzeichniss mit einer php und .htaccess datei zu erstellen (mit der .htaccess wird auf die erstellte php redirectet). über ein formular, mit ajax funktionalität wird nun das erstellte verzeichniss aufgerufen und der rückgabewert durch das ajax script in das formular eingetragen.
    so sollte sich doch feststellen lassen, ob htaccess mit modrewrite (also redirects) funktioniert oder ?
    das einzige problem was ich mir dann noch vorstellen könnte ist, dass evtl bereits eine .htaccess datei im serverroot vorhanden ist.

    hat eventuell noch jemand anregungen, ideen oder andere tipps, um festzustellen, ob htaccess mit modrewrite auf dem webspace vorhanden ist (sollte über php laufen ohne auf andere [optionale] module zuzugreifen).


    lg
    das t-entchen
    - ich weis, dass php 4 veraltet ist und ich lieber php 5 nutzen sollte
    - ich mache das ganze nicht nur um mein projekt zu erstellen, sondern um das ganze auch zu verstehen
    - wenn das ganze in php 4 funktioniert will ich es sauber nach php 5 migrieren
    - kurz gesagt ich WILL LERNEN VERSTEHEN und restlos BEGREIFEN wie das was ich möchte in php 4 / 5 / 6 umgesetzt werden soll
  • mein problem bei der sache ist, ich weiss nicht, ob es reicht nur in einem unterverzeichniss zu testen. sofern ich jedoch im serverroot teste kann das doch auch böse nach hinten losgehen oder ?

    btw mein praxistest (in einem unterverzeichnis eine htaccess und eine php erstellen und via ajax ein formular upzudaten) funzt.
    - ich weis, dass php 4 veraltet ist und ich lieber php 5 nutzen sollte
    - ich mache das ganze nicht nur um mein projekt zu erstellen, sondern um das ganze auch zu verstehen
    - wenn das ganze in php 4 funktioniert will ich es sauber nach php 5 migrieren
    - kurz gesagt ich WILL LERNEN VERSTEHEN und restlos BEGREIFEN wie das was ich möchte in php 4 / 5 / 6 umgesetzt werden soll
  • ne das geht nicht :)

    meine software (ein hoffentlich mal sehr gutes kleines framework) kann auch unterhalb des server roots z.b. installiert werden (da funzt htaccess net). und sofern ht access verfügbar ist muss keine verzeichnissstruktur im webserver erstellt werden. ohne htaccess hingegen muss für jede uri auch das entsprechende verzeichnis/unterverzeichnis angelegt werden. hab halt nur das problem, dass ich nicht weis, ob für den webserver (root dir) andere regeln für htacces festgelegt sein können als für unterverzeichnisse im serverroot und wie ich darauf teste :)
    - ich weis, dass php 4 veraltet ist und ich lieber php 5 nutzen sollte
    - ich mache das ganze nicht nur um mein projekt zu erstellen, sondern um das ganze auch zu verstehen
    - wenn das ganze in php 4 funktioniert will ich es sauber nach php 5 migrieren
    - kurz gesagt ich WILL LERNEN VERSTEHEN und restlos BEGREIFEN wie das was ich möchte in php 4 / 5 / 6 umgesetzt werden soll
  • Ohje,

    also erstmal ist die .htaccess allgemein auch in jedem beliebigen Unterordner möglich.
    Zum anderen sollte mod_rewrite immer optional sein. Ich würde niemals die mod_rewrite Verzeichnisstruktur versuchen durch php Datei nachzubilden.

    Wie willst du denn dann z.B. mod_rewrite wie hier im Forum realisieren? {titel des themas}-{id}.html
    Damit schränkst du dich langfristig total ein.

    Die in meinen Augen bessere mod_rewrite Alternative sieht wie folgt aus: index.php/{titel des themas}-{id}.html
    Bis auf das index.php ist alles identisch.
  • hört sich auch gut an :)

    werde das mal in meine überdenkungen einbeziehen ;)

    kurz nebenbei noch eine andere kleine frage

    .../index.php/bla/bla/bla/bla

    sind solche urls SEO konform? und wie kann ich daran noch params hängen ?

    .../index.php?id=id&wert=wert/bla/bla/bla/bla oder
    .../index.php/bla/bla/bla/bla?id=id&wert=wert
    - ich weis, dass php 4 veraltet ist und ich lieber php 5 nutzen sollte
    - ich mache das ganze nicht nur um mein projekt zu erstellen, sondern um das ganze auch zu verstehen
    - wenn das ganze in php 4 funktioniert will ich es sauber nach php 5 migrieren
    - kurz gesagt ich WILL LERNEN VERSTEHEN und restlos BEGREIFEN wie das was ich möchte in php 4 / 5 / 6 umgesetzt werden soll

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Tigerente ()

  • Schau dir in diesem Zusammenhang vielleicht mal das REST-Paradigma an. Dort werden abrufbare Daten als "Ressourcen" verstanden, die mit dem üblichen HTTP-Methoden abgefragt, angelegt, bearbeitet und gelöscht werden können. Du kannst den Methoden trotzdem Parameter mitgeben. Sie tauchen nur bei GET in der URL auf.

    Für eine Mitgliederverwaltung sähe das z.B. so aus:

    GET meineseite.de/mitglieder/ -> gibt einer Liste aller mitglieder zurück
    GET meineseite.de/mitglieder/95 -> gibt das Mitglied mit der ID 95 zurück (als ID können z.B. auch Namen verwendet werden)
    ...
    ...
    DELETE meineseite.de/mitglieder/95 -> löscht das Mitglied mit der ID 95

    Du siehst, dass beim 2. GET und DELETE die URL gleich ist. REST sagt aus, dass der Server abhängig von der HTTP-Methode gewisse Aktionen ausführt.
    Wenn du allerdings nur Bahnhof verstehst, vergiss meinen Post und schau in ein paar Monaten nochmal drauf :D (Hab selbst ne ganze Weile gebraucht, bis ich einen Sinn in REST erkannt habe)

    REST: de.wikipedia.org/wiki/Representational_State_Transfer
  • verstanden soweit schon ...

    nur weis ich nicht was dass mit der SEO konformität der uris zu tun hat, die mir d0nut vorgeschlagen hat ;)
    mit htaccess verwende ich schon eine (etwas an REST angelehnte) verarbeitung meiner uris ;)
    - ich weis, dass php 4 veraltet ist und ich lieber php 5 nutzen sollte
    - ich mache das ganze nicht nur um mein projekt zu erstellen, sondern um das ganze auch zu verstehen
    - wenn das ganze in php 4 funktioniert will ich es sauber nach php 5 migrieren
    - kurz gesagt ich WILL LERNEN VERSTEHEN und restlos BEGREIFEN wie das was ich möchte in php 4 / 5 / 6 umgesetzt werden soll
  • Naja, wenn du die IDs als Kombination aus {titel des themas}-{id} zusammensetzt, wie d0nut beschrieben hatte, hast du ja SEO-konforme URLs.

    REST an sich ist ein Konzept, was automatisch zu solchen URLs führt, wenn es konsequent angewandt wird. Daher fiel mir das hier ein. Meist erfordert es aber einen Umbau, außer man setzt von Anfang an auf eine REST-Basis. Sicherlich ist es nicht für jeden Anwendungsfall geeignet. Da ich nicht genau weiß, welche Art von Applikation du hier bauen möchtest, kann ich das auch nicht einschätzen. Mir fiel es nur eben ein, als ich die "sprechenden" URLs oben sah... ;)
  • also mein kleines proggi wird ein framework (ja noch eins ;) )
    solange auf dem webserver htaccess verfügbar ist

    domain.com/hier/will/ich/hin

    aber sobald ich einen webserver ohne habe fängt es an problematisch zu werden

    entweder ich lege für alle erlaubten urls eine entsprechende verzeichnisstruktur an (mit einer universellen index.php die sozusagen das redirect übernimmt)
    oder so wie d0nut meinte

    domain.com/index.php/hier/will/ich/hin

    und meine frage war ob diese letzte url :
    a) parameter haben kann (und wenn ja wo)
    b) seo konform ist :)

    das ich bei meinem FW mit REST arbeite (oder zumindest mich daran orientiere) steht dabei ja ausser frage :)
    - ich weis, dass php 4 veraltet ist und ich lieber php 5 nutzen sollte
    - ich mache das ganze nicht nur um mein projekt zu erstellen, sondern um das ganze auch zu verstehen
    - wenn das ganze in php 4 funktioniert will ich es sauber nach php 5 migrieren
    - kurz gesagt ich WILL LERNEN VERSTEHEN und restlos BEGREIFEN wie das was ich möchte in php 4 / 5 / 6 umgesetzt werden soll
  • danke dir :)

    habs getestet

    domain.com/index.php/bla/bla/bla?test=wert&wert=test

    Quellcode

    1. $_GET
    2. [test] => 'wert'
    3. [wert] => 'test'


    domain.com/index.php?test=wert&wert=test/bla/bla/bla

    Quellcode

    1. $_GET
    2. [test] => 'wert'
    3. [wert] => 'test/bla/bla/bla'


    also nur die erste version funktioniert. jetzt fehlt nur noch die antwort auf die frage ob diese url SEO konform ist, oder nicht ;)
    also wer mir dazu noch was sagen kann ... wäre toll :)

    und

    @mad dass du die frage falsch verstanden hast macht doch nichts :D immerhin weisst du ja jetzt, dass ich mein projekt (zumindest etwas) an das REST anlehne.
    - ich weis, dass php 4 veraltet ist und ich lieber php 5 nutzen sollte
    - ich mache das ganze nicht nur um mein projekt zu erstellen, sondern um das ganze auch zu verstehen
    - wenn das ganze in php 4 funktioniert will ich es sauber nach php 5 migrieren
    - kurz gesagt ich WILL LERNEN VERSTEHEN und restlos BEGREIFEN wie das was ich möchte in php 4 / 5 / 6 umgesetzt werden soll
  • da sich meine router class ohnehin an der request uri vergnügt, sind da nur kleine anpassungen nötig :)
    (das "#^/index\.php/(.*)\?.*$# über einen RegEx feststellen und gleich durch "$1" oder wars "$0" ersetzen) somit sollte danach die "resturi" so sein wie sie soll :D (/ am anfang wird bei mir ohnehin gelöscht weil nicht gebraucht)

    die parameter kommen ja ohnehin aus $_GET
    - ich weis, dass php 4 veraltet ist und ich lieber php 5 nutzen sollte
    - ich mache das ganze nicht nur um mein projekt zu erstellen, sondern um das ganze auch zu verstehen
    - wenn das ganze in php 4 funktioniert will ich es sauber nach php 5 migrieren
    - kurz gesagt ich WILL LERNEN VERSTEHEN und restlos BEGREIFEN wie das was ich möchte in php 4 / 5 / 6 umgesetzt werden soll
  • So, heute kann ich wieder denken :D

    Nochmal zu deiner Frage mit den Parametern. Das hast du zwar schon beantwortet, aber von der theoretischen Seite her:

    Deine Applikation verarbeitet ja einen HTTP-Request, ein solcher Request hat einen Header und einen Body. Im Header sind (angefragter) Pfad, verwendete HTTP-Methode und Parameter (bei POST evtl. auch im Body) enthalten. Die Parameter gelten also für den ganzen Request, nicht für einzelne Pfade. Daher hat dein zweiter Aufruf nicht funktioniert.