Ankündigung

Einklappen
Keine Ankündigung bisher.

Content zwischen Header und Footer ändern - URL anpassen ohne .php am Ende

Einklappen

Neue Werbung 2019

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

  • #16
    Okay dann habe ich vielleicht etwas grundlegendes falsch verstanden. Kann mir denn jemand einen Tipp geben wie ich die Endungen/Extensions der Seite nicht mit anzeige?

    Kommentar


    • #17
      Indem du sie nicht ins HTML schreibst.

      Kommentar


      • #18
        Da kommt dann das... Not Found

        The requested URL /page/news was not found on this server.

        Ich habe ja keine andere Möglichkeit dynamisch Inhalt innerhalb der Website mit PHP zu laden ohne die gesamte Seite neu laden zu müssen. Ich muss ja Parameter in der URL verwenden oder nicht? Also ich habe momentan absolut keine Ahnung wo ich da anfangen soll zu suchen.

        Kommentar


        • #19
          Ich muss ja Parameter in der URL verwenden oder nicht?


          Du verlinkst im HTML (= Ausgabe von PHP) einfach so wie die Links im Browser dann aussehen sollen, und via mod_rewrite teilst du dann den Webserver mit wo er an Hand dieses Links (= Request) dann die Ressource ( ~ "Seite") findet.

          In #4 habe ich das (http://www.php-rocks.de/thema/58-ein...-umsetzen.html) schon verlinkt, schon angesehen? Schau dir das mal "mit Hirn" an, ich finde Arne Drews hat das dort gut erklärt.
          The string "()()" is not palindrom but the String "())(" is.

          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
          PHP.de Wissenssammlung | Kein Support per PN

          Kommentar


          • #20
            The requested URL /page/news was not found on this server.
            Und hier benutzt du mod_rewrite um aus /page/news eine URL zu basteln, die der Apache-Server zuordnen kann.

            z.B.
            Code:
            # /page/news => index.php?page=news
            RewriteRule ^(\w+)/(\w+)$ index.php?$1=$2

            Kommentar


            • #21
              Zitat von Dormilich Beitrag anzeigen
              Und hier benutzt du mod_rewrite um aus /page/news eine URL zu basteln, die der Apache-Server zuordnen kann.

              z.B.
              Code:
              # /page/news => index.php?page=news
              RewriteRule ^(\w+)/(\w+)$ index.php?$1=$2
              Das ist unnötig. Es reicht eine Umleitung auf index.php so wie ich es geschrieben habe. Der Rest ist Apache egal, da muss sich PHP darum kümmern.

              Kommentar


              • #22
                Habe mir die Seite aus #4 noch einmal durchgelesen.
                Nun bin ich bei folgendem Problem...

                Ich habe zum testen mal diesen Code verwendet:
                PHP-Code:
                $aPath pathinfo$_SERVER['REQUEST_URI'] );
                        switch ( 
                $aPath['dirname'] ) {

                            case 
                '/login':
                                
                $sIncludePath '/login';
                                break;
                            default:
                                
                $sIncludePath '/home';
                                break;

                        }
                        
                // $aPath['filename'] .
                        
                var_dump(__DIR__ $sIncludePath '.php');
                        include_once 
                __DIR__ $sIncludePath '.php'
                var_dump gibt etwa das aus:
                Code:
                /var/www/web123/html/example/home.php
                Das funktioniert also, wenn ich direkt auf meiner Seite ohne Zusatzangabe bin, er bindet dann normal die HOME Seite mit in die INDEX ein.

                Sobald ich aber auf einen Link klicke, funktioniert das alles nicht mehr.

                Liegt das vielleicht daran dass die Seite in einem Unterordner ist?
                www.example.com/example

                wenn ich in
                Code:
                <a href="example/login">LINK</a>
                oder
                Code:
                <a href="/login">LINK</a>
                eingebe landet er auf anderen Seiten.

                Zuvor habe ich ja mit $_GET['page'] nur einen bestimmten Teil der Seite neu geladen, ist das damit nicht mehr möglich?

                Kommentar


                • #23
                  Was sagt denn var_dump() in den Fällen, wo es Deiner Meinung nach nicht funktioniert?
                  Competence-Center -> Enjoy the Informatrix
                  PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                  Kommentar


                  • #24
                    Naja wenn ich auf meiner Startseite bin und dann z.B. auf den Link LOGIN klicke welcher mit href="login" angegeben wurde, funktioniert es nicht mehr.
                    Hier kommt dann folgendes: Not Found

                    The requested URL /login was not found on this server.

                    Und in der URL steht dann das
                    Code:
                    https://example.com/login
                    . Er springt ein komplettes Verzeichnis zurück ins Root Verzeichnis.

                    Davon ab möchte ich ja gern die INDEX Seite immer auf haben und nur den mittleren Bereich neu laden, ist dies mit aufrufen einer URL wie
                    Code:
                    https://example.com/example/login
                    möglich?
                    Ich habe gerade noch keine Vorstellung wie ich mit einem LINK Klick die Index-Seite mit dem richtigen Mittelteil aufrufen soll.

                    Kommentar


                    • #25
                      Ich würde Dir erst mal empfehlen mal irgendwo durchzulesen was URLS sind und wie diese Funktionieren.

                      /login ist ein absoluter URL Pfad. und hat absolut nix mit /example/login zu tun,

                      Aber all das spiel doch erst dann eine Rolle wenn Mod Rewrite bei Dir läuft,

                      Lege die htaccess wie in #12 gezeigt an, räume das komplette Verzeichnis in dem die Index.php und .htaccess liegt leer (bis auf diese beiden Dateien)
                      Schreibe erst mal in die Index.php nur eine Ausgabe anhand der Du erkennst das die Index.php aufgerufen wurde (z.B. phpinfo()) und rufen eine beliebige nicht existierende URL da auf. Es sollte das angezeigt werden was die index.php ausgiebt.

                      Ist das nicht der Fall is mod_rewrite nicht aktiv oder kaputt konfiguriert.
                      PHP-Manual ¡ mysql_* ist veraltet ¡ Debugging: Finde DEINE Fehler selbst ¡ Passwort-Hashing ¡ Prepared Statements

                      Kommentar


                      • #26
                        In der "Meldung" Not Found schreibt er Dir auch, was er wo versucht hat zu erreichen. Das enthältst Du uns, bzw. schaust es Dir vermutlich selber gar nicht an.
                        Da findet man meistens seine eigenen Fehler.
                        Competence-Center -> Enjoy the Informatrix
                        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                        Kommentar


                        • #27
                          Zitat von Ulfikado Beitrag anzeigen
                          Ich würde Dir erst mal empfehlen mal irgendwo durchzulesen was URLS sind und wie diese Funktionieren.

                          /login ist ein absoluter URL Pfad. und hat absolut nix mit /example/login zu tun,

                          Aber all das spiel doch erst dann eine Rolle wenn Mod Rewrite bei Dir läuft,

                          Lege die htaccess wie in #12 gezeigt an, räume das komplette Verzeichnis in dem die Index.php und .htaccess liegt leer (bis auf diese beiden Dateien)
                          Schreibe erst mal in die Index.php nur eine Ausgabe anhand der Du erkennst das die Index.php aufgerufen wurde (z.B. phpinfo()) und rufen eine beliebige nicht existierende URL da auf. Es sollte das angezeigt werden was die index.php ausgiebt.

                          Ist das nicht der Fall is mod_rewrite nicht aktiv oder kaputt konfiguriert.
                          So, habe alles leer geräumt bis auf diese beiden Dateien.
                          nun habe ich oben an die URL noch etwas nicht existierendes gehangen

                          Das öffnet die Index Seite:
                          Code:
                          www.example.com/unterordner/
                          Das öffnet Not found:
                          Code:
                          www.example.com/unterordner/test

                          Zitat von Arne Drews Beitrag anzeigen
                          In der "Meldung" Not Found schreibt er Dir auch, was er wo versucht hat zu erreichen. Das enthältst Du uns, bzw. schaust es Dir vermutlich selber gar nicht an.
                          Da findet man meistens seine eigenen Fehler.
                          Natürlich lese ich was da steht, hilft mir nur leider trotzdem kaum weiter.

                          Kommentar


                          • #28
                            Kurze Zwischenfrage bitte - interessehalber:

                            Zitat von hellbringer Beitrag anzeigen
                            Die Umleitung müsste so aussehen:
                            Code:
                            RewriteEngine On
                            RewriteCond %{REQUEST_FILENAME} -s [OR]
                            RewriteCond %{REQUEST_FILENAME} -l [OR]
                            RewriteCond %{REQUEST_FILENAME} -d
                            RewriteRule ^.*$ - [NC,L]
                            RewriteRule ^.*$ index.php [NC,L]
                            Statt dem oben könnte man auch
                            Code:
                            FallbackResource /index.php
                            nehmen, oder hätte das noch irendwelche Nachteile (die ich bisher nicht gefunden hab).

                            https://httpd.apache.org/docs/trunk/...llbackresource

                            Use this to set a handler for any URL that doesn't map to anything in your filesystem, and would otherwise return HTTP 404 (Not Found). For example
                            FallbackResource /not-404.php
                            will cause requests for non-existent files to be handled by not-404.php, while requests for files that exist are unaffected

                            In earlier versions of httpd, this effect typically required mod_rewrite, and the use of the -f and -d tests for file and directory existence. This now requires only one line of configuration.

                            FallbackResource /index.php Existing files, such as images, css files, and so on, will be served normally.
                            Irgendwie sieht man das kaum.. gibts dafür ev. einen Grund? Ist das einfach nur in "neuen" Versionen verfügbar? Abwärtskompatibilität?
                            The string "()()" is not palindrom but the String "())(" is.

                            Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                            PHP.de Wissenssammlung | Kein Support per PN

                            Kommentar


                            • #29
                              Natürlich lese ich was da steht, hilft mir nur leider trotzdem kaum weiter.
                              Deshalb sollst Du die ganze Meldung posten, damit wir Dir evtl. sagen können, was da falsch läuft!
                              Competence-Center -> Enjoy the Informatrix
                              PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                              Kommentar


                              • #30
                                Zitat von Arne Drews Beitrag anzeigen
                                Deshalb sollst Du die ganze Meldung posten, damit wir Dir evtl. sagen können, was da falsch läuft!
                                Not Found


                                The requested URL /example/home was not found on this server.
                                Apache Server at example.com Port 443

                                Kommentar

                                Lädt...
                                X