Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Alternative zu Domain Redirect mit PHP

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Alternative zu Domain Redirect mit PHP

    Hallo Community,

    ich habe eine Frage zu PHP oder besser allgemein zu Servern.

    Und zwar habe ich eine kleine Webseite auf meinem Raspberry Pi laufen. Auf diese Webseite zeigen 3 Domains. Es soll aber eigentlich nur einen Hauptdomain geben, auf den alle anderen Anfragen weitergeleitet werden. Es soll aber nicht bloß eine Weiterleitung sein, sondern man soll auch direkt über die anderen 2 Domains in Unterverzeichnisse navigieren können.

    Um das zu realisieren habe ich dann einfach immer die aktuelle URL abgefragt und dann den Domain jeweils ersetzt. Dies dann in eine Datei rein und überall einbinden.

    Das ist mir aber etwas zu umständlich, deshalb suche ich einen Weg, dass der Domain in der Addresszeile ersetzt wird.
    Wenn ich z.B. eine URL aufrufe, die nicht existiert, bekomme ich ja nur die Apache 404 Meldung angezeigt, jedoch wird der Domain in diesem Fall nicht ersetzt.

    Ich hoffe ich konnte es irgendwie verständlich rüberbringen und hoffe mal, dass ihr wisst was ich meine und mir helfen könnt.

    Bin für jede hilfreiche Antwort dankbar!

    Gruß

    jkhsjdhjs


  • #2
    Willkommen im Forum.

    mod_rewrite wäre bei Nutzung des Apache die wohl beste Option.

    Code:
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^(www\.)?name-of-domain\.net$ [NC]
    RewriteRule ^(.*)$ http://www.name-der-domain.de/$1 [R=301,L]
    - https://jweiland.net/typo3-hosting/a...-umleiten.html

    Wenn ich die Frage richtig verstanden habe.

    Kommentar


    • #3
      Zitat von jkhsjdhjs Beitrag anzeigen
      Es soll aber nicht bloß eine Weiterleitung sein, sondern man soll auch direkt über die anderen 2 Domains in Unterverzeichnisse navigieren können.
      das hab ich nicht verstanden.
      und wenn seo keine rolle spielt (raspery-pi), dann kannste doch alle drei vhosts auf das selbe verzeichniss mappen.

      Kommentar


      • #4
        Erstmal Danke für die bisherigen Antworten!

        Zitat von mermshaus Beitrag anzeigen
        Willkommen im Forum.

        mod_rewrite wäre bei Nutzung des Apache die wohl beste Option.



        - https://jweiland.net/typo3-hosting/a...-umleiten.html

        Wenn ich die Frage richtig verstanden habe.
        Ja, das hast du richtig verstanden. Jedoch funktioniert das bei mir nicht wirklich.
        Es hatte doch den Sinn, dass der Domain in der URL auf eine andere Domain geändert wird, oder?

        Das funktioniert bei mir auf jeden Fall nicht.
        Habe eine .htaccess in /var/www mit chmod 755 und folgendem Inhalt:
        Code:
        RewriteEngine On
        RewriteCond %{HTTP_HOST} ^www\.aufgerufener-domain\.de$ [NC]
        RewriteRule ^(.*)$ http://weiterleitung-zu-domain.de/$1 [R=301,L]
        Der aufgerufene Domain ist der gleiche wie der, zu dem man weitergeleitet wird, nur hat der aufgerufene ein www. davor und der, zu dem man weitergeleitet wird nicht.

        Aber anscheinend wird die .htaccess nicht beachtet oder ich habe doch irgendnen Fehler eingebaut.

        In die apache2.conf habe ich folgendes geschrieben:

        Code:
        AccessFileName .htaccess
        
        <Directory /var/www/>
                AllowOverride All
        </Directory>
        AccessFileName stand schon vorher da, das andere habe ich durch googlen erfahren und hoffe mal, dass das so richtig ist.

        @moma:
        Ich will quasi wenn ich Domain 1 aufrufe (http://www.domain.de/abc/def/ghi/index.html) auch zu http://domain.de/abc/def/ghi/index.html weitergeleitet werden.

        EDIT: Ja, ich weiß, am Anfang waren es insgesamt 3 Domains, aber ich will erstmal eine Weiterleitung hinbekommen, bevor ich mich um die nächste kümmere.

        Seht Ihr vielleicht noch irgendwelche Fehler in meiner .htaccess oder in der apache2.conf? Oder hab ich was falsch verstanden?

        Gruß

        jkhsjdhjs

        Kommentar


        • #5
          Es hatte doch den Sinn, dass der Domain in der URL auf eine andere Domain geändert wird, oder?
          Es löst eine HTTP-Weiterleitung aus, aber man kann das wohl landläufig so sagen, ja.

          Kannst ja mal mit ErrorDocument- oder DirectoryIndex-Direktiven in der .htaccess-Datei versuchen, ob sie berücksichtigt wird.

          - http://httpd.apache.org/docs/current...#errordocument
          - http://httpd.apache.org/docs/current...directoryindex

          Und gucken, welche Module dein Apache aktiviert hat.

          Code:
          $ apachectl -M
          …oder so.

          Du hast nach dem Anpassen der Konfiguration den Server neu gestartet?

          Auch ein Blick in die Error-Logs des Servers mag helfen.

          Dann cachet möglicherweise dein Browser – falls du das alles mit einem Browser testest – die Weiterleitungen. Auch hier kann ein Neustart oder das Deaktivieren des Caches (dafür gibt es Extensions, „Web Developer“ etwa) helfen.

          Es gibt natürlich geschicktere Vorgehensweisen, so was zu debuggen.

          Siehe speziell für mod_rewrite auch:

          - http://stackoverflow.com/questions/9...he-mod-rewrite

          Kommentar


          • #6
            Hier die Rückgabe des Befehls zur Auflistung der Module:
            Code:
            jkhsjdhjs@raspberrypi ~ $ apachectl -M
            /usr/sbin/apachectl: 87: ulimit: error setting limit (Operation not permitted)
            apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
            Loaded Modules:
             core_module (static)
             log_config_module (static)
             logio_module (static)
             version_module (static)
             mpm_prefork_module (static)
             http_module (static)
             so_module (static)
             alias_module (shared)
             auth_basic_module (shared)
             authn_file_module (shared)
             authz_default_module (shared)
             authz_groupfile_module (shared)
             authz_host_module (shared)
             authz_user_module (shared)
             autoindex_module (shared)
             cgi_module (shared)
             deflate_module (shared)
             dir_module (shared)
             env_module (shared)
             mime_module (shared)
             negotiation_module (shared)
             php5_module (shared)
             reqtimeout_module (shared)
             setenvif_module (shared)
             status_module (shared)
            Syntax OK
            Fehlt mir da vllt eins um mod_rewrite verwenden zu können?

            Habe auch mal, wie du es gesagt hast, den DirectoryIndex geändert.
            Habe folgendes in die .htaccess geschrieben:
            Code:
            DirectoryIndex body.html
            Die body.html wird normalerweise von der index.php in den body bereich geladen. Jedoch habe ich trotz des geänderten DirectoryIndex die index.php erhalten. Also wird die .htaccess gar nicht beachtet.

            Ja, habe Apache natürlich nach dem ändern der Konfiguration neu gestartet.

            Der Browser cachet auch nicht, habe mit dem Addon Web Developer die Cache und die DNS Cache deaktiviert.

            Der Error Log brachte mich auch nicht weiter, es gibt keine Einträge nach dem 7. Oktober.

            Kommentar


            • #7
              Fehlt mir da vllt eins um mod_rewrite verwenden zu können?
              Ich nehme es an. Das müsste rewrite_module (shared) sein. Das scheint also nicht installiert oder aktiviert zu sein.

              Also wird die .htaccess gar nicht beachtet.
              Das scheint zumindest nicht unwahrscheinlich.

              Ich könnte leider auch nur im Web suchen, wie die Dinger in deinem Environment genau zu aktivieren sind. (Und ausprobieren kann ich ja nicht.) Vielleicht meldet sich dazu aber ja noch jemand, der sich besser damit auskennt.

              Kommentar


              • #8
                So, das rewrite_module hab ich jetzt aktiviert. Erscheint jetzt auch unter dem Namen "rewrite_module (shared)" in der Liste.

                Warum die .htaccess nicht beachtet wird ist mir wirklich ein Rätsel.
                Habe auch mal versucht /var/www in <Directory> in der apache2.conf in Anführungszeichen zu setzen, hat aber auch nichts geändert.

                EDIT: Hat sich jetzt alles erledigt. Problem solved!
                Ich musste AllowOverride All setzen, das wusste ich.
                Jedoch habe ich die falsche Datei verwendet.
                AllowOverride All musste ich in der folgenden Datei ändern:
                /etc/apache2/sites-enabled/000-default
                Bin hier fündig geworden: http://www.instructables.com/id/Rasp...ache-with-PHP/

                Jetzt funktioniert alles. Danke an alle!

                Kommentar

                Lädt...
                X