Donald2603: HTTP 301

Hi,

ich schreibe meine Seite zur Zeit neu. Ich habe sie dafür in einem Unterverzeichnis laufen.
Wenn ich Adresse mit beispielsweise dem Websniffer aufrufe erhalte ich als Antwort den Quellcode der Http 301 Webseite.

Wird der 301 Code generell gesendet wenn man eine Homepage in einem Unterordner betreibt? Und woran erkennt der Server das es sich um eine Homepage handelt und dann 301 sendet?

Donald

  1. Wenn ich Adresse mit beispielsweise dem Websniffer aufrufe erhalte ich als Antwort den Quellcode der Http 301 Webseite.

    Wird der 301 Code generell gesendet wenn man eine Homepage in einem Unterordner betreibt? Und woran erkennt der Server das es sich um eine Homepage handelt und dann 301 sendet?

    Educated guess: es wird ein 301 gesendet - vom Webserver, von PHP oder von dir. Autmatisch passiert das alledings idR. nicht.

    1. Wenn ich Adresse mit beispielsweise dem Websniffer aufrufe erhalte ich als Antwort den Quellcode der Http 301 Webseite.

      Wird der 301 Code generell gesendet wenn man eine Homepage in einem Unterordner betreibt? Und woran erkennt der Server das es sich um eine Homepage handelt und dann 301 sendet?

      Educated guess: es wird ein 301 gesendet - vom Webserver, von PHP oder von dir. Autmatisch passiert das alledings idR. nicht.

      Ich sende keinen 301 aus.

      PHP sendet bei mir folgendes:

      header('Content-type: text/html; charset=iso-8859-1');
      header('Vary: Accept');

      Allerdings habe ich folgendes gemacht, vielleicht erklärt das das Problem:

      Da meine Links so extrem lang sind (www.xyz.de/?act=..&act2=..$act3=.., habe ich eine Option programmiert, die den Link auf dem Server speichert und stattdessen dem User einen Link zurückliefert der ca. so aussieht: www.xyz.de/?id=12
      Gibt man das ein, liest PHP die id ein, vergleicht sie mit der Datenbank an möglichen zahlen und leitet dann per Header('Location: ..') an die lange neue Adresse weiter.
      Habe das vorher mit meta refresh gemacht, das hebelt aber den zurück button aus und ist ein "Unding im Webdesign" wie ich lesen musste. Dort wurde diese Lösung vorgeschlagen.
      Wobei das auch das Problem erklären könnte. Eine bessere Lösung viel mir aber nicht ein.

      1. Ich sende keinen 301 aus.

        Definitionssache :)

        PHP sendet bei mir folgendes:

        Gibt man das ein, liest PHP die id ein, vergleicht sie mit der Datenbank an möglichen zahlen und leitet dann per Header('Location: ..') an die lange neue Adresse weiter.

        Also doch eine Weiterleitung - von PHP von dir ;)

        Wobei das auch das Problem erklären könnte. Eine bessere Lösung viel mir aber nicht ein.

        Du meinst "fiel" :) - aber wenn du URLs schönen willst, gibt es auch Möglichkeiten ohne Redirects - wenn du index.php?id=12 aufrufst, kannst du in einem Script auch intern deine parameter setzen, ohne gleich umleiten zu müssen.

        1. Ich sende keinen 301 aus.

          Definitionssache :)

          PHP sendet bei mir folgendes:

          Gibt man das ein, liest PHP die id ein, vergleicht sie mit der Datenbank an möglichen zahlen und leitet dann per Header('Location: ..') an die lange neue Adresse weiter.

          Also doch eine Weiterleitung - von PHP von dir ;)

          Wobei das auch das Problem erklären könnte. Eine bessere Lösung viel mir aber nicht ein.

          Du meinst "fiel" :) - aber wenn du URLs schönen willst, gibt es auch Möglichkeiten ohne Redirects - wenn du index.php?id=12 aufrufst, kannst du in einem Script auch intern deine parameter setzen, ohne gleich umleiten zu müssen.

          Das ist jetzt schon das zweite mal das ich viel anstatt fiel schreibe. Sollte ich mir Sorgen machen? In diesem Kontext sind die beiden Wörter aber auch so verdammt ähnlich^^

          Also hat der 301 mit dieser Umleitung zu tun, auch wenn diese sehr selten aufgerufen wird. Ich hatte da schon eine Vermutung.

          Deine Idee das in dem Skript zu erledigen hatte ich anfangs auch, habe dann aber aufgegeben, da ich nicht wusste wie ich Unterverzeichnisse einbinde.
          Wenn ich die index.php aus Unterverzeichnissen einbinde (include oder require), dann ist das Arbeitsverzeichnis root anstatt beispielsweise /presse. Oder gibt es Code um das Arbeitsverzeichnis zu wechseln?

          1. Wenn ich die index.php aus Unterverzeichnissen einbinde (include oder require), dann ist das Arbeitsverzeichnis root anstatt beispielsweise /presse. Oder gibt es Code um das Arbeitsverzeichnis zu wechseln?

            Du kannst eine Konstante/Variable für dein "Arbeitsverzeichnis" definieren, die du dann halt je nach dem wo das Script liegt entsprechend setzt und als Prefix für den include/require-Pfad verwendest.

            1. Wenn ich die index.php aus Unterverzeichnissen einbinde (include oder require), dann ist das Arbeitsverzeichnis root anstatt beispielsweise /presse. Oder gibt es Code um das Arbeitsverzeichnis zu wechseln?

              Du kannst eine Konstante/Variable für dein "Arbeitsverzeichnis" definieren, die du dann halt je nach dem wo das Script liegt entsprechend setzt und als Prefix für den include/require-Pfad verwendest.

              Dann müsste ich aber das gesamte Script mit dieser Variable überall bei Aufrufen ausrüsten. Werde mal grob rüberschauen ob das im Bereich des möglichen ist. Bedeutet auf jeden Fall eine Nachtschicht!

            2. Wenn ich die index.php aus Unterverzeichnissen einbinde (include oder require), dann ist das Arbeitsverzeichnis root anstatt beispielsweise /presse. Oder gibt es Code um das Arbeitsverzeichnis zu wechseln?

              Du kannst eine Konstante/Variable für dein "Arbeitsverzeichnis" definieren, die du dann halt je nach dem wo das Script liegt entsprechend setzt und als Prefix für den include/require-Pfad verwendest.

              Irgendwie bekomme ich das nicht hin.

              Angenommen ein Nutzer öffnet www.xyz.de/presse/?act=test&act2=testeintrag und verkleinert diesen Link in www.xyz.de/?id=15
              Wenn nun dieser Link geöffnet wird und ich das mit meiner index.php im root-Verzeichnis bearbeite, ist der Arbeitspfad ja das root-Verzeichnis, egal wie viele Konstanten ich da einbaue.
              Der Link würde nach Generierung des Content durch die index.php also so aussehen: www.xyz.de/?act=test&act2=testeintrag
              Dadurch das der Ordner /presse wegfällt, müsste ich das Script zusätzlich anweisen alle Pfadangaben (wie der von Bildern) von dem HTML Content anzupassen.
              Ich muss also irgendwie in das Presse-Verzeichnis kommen. Wie geht das ohne Weiterleitung oder wenn per Weiterleitung ohne den 300er Statuscode?

          2. Hallo,

            Das ist jetzt schon das zweite mal das ich viel anstatt fiel schreibe.

            ja, darüber ärgern die sich beim Vielmann auch immer. ;-)

            Deine Idee das in dem Skript zu erledigen hatte ich anfangs auch, habe dann aber aufgegeben, da ich nicht wusste wie ich Unterverzeichnisse einbinde.

            Du sprichst in Rätseln.

            Wenn ich die index.php aus Unterverzeichnissen einbinde (include oder require), dann ist das Arbeitsverzeichnis root anstatt beispielsweise /presse. Oder gibt es Code um das Arbeitsverzeichnis zu wechseln?

            Ja, schon - aber wozu?

            Ciao,
             Martin

            --
            Lieber blau machen, als sich schwarz ärgern.
            Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
            1. Hallo,

              Das ist jetzt schon das zweite mal das ich viel anstatt fiel schreibe.

              ja, darüber ärgern die sich beim Vielmann auch immer. ;-)

              Deine Idee das in dem Skript zu erledigen hatte ich anfangs auch, habe dann aber aufgegeben, da ich nicht wusste wie ich Unterverzeichnisse einbinde.

              Du sprichst in Rätseln.

              Wenn ich die index.php aus Unterverzeichnissen einbinde (include oder require), dann ist das Arbeitsverzeichnis root anstatt beispielsweise /presse. Oder gibt es Code um das Arbeitsverzeichnis zu wechseln?

              Ja, schon - aber wozu?

              Ciao,
              Martin

              Mein Server sieht in etwa so aus:
              index.php
              Sub.php
              presse/index.php
              xy/index.php

              die index.php haben nur einen Befehl: include('../sub.php')

              Der Aufbau kommt daher, das die index einen anderen Aufbau hat als die Sub-Seiten.
              Wenn nun eine Seite in einem Unterverzeichnis aufgerufen wird, so ist dieses auch das Arbeitsverzeichnis für HTML. Bilder und Links sind entsprechend angepasst.
              Wenn die Seite nun aus dem root-Verzeichnis aufgerufen wird, so sind alle Verweise zunichte.
              chdir ändert nur das PHP-Arbeitsverzeichnis, jedoch nicht das von HTML, was jedoch wichtiger wäre!
              http://forum.de.selfhtml.org/?t=211299&m=1441797