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

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

    Hallo Leute,
    ich versuche seit einiger Zeit die Extensions der php-Dateien in der URL zu entfernen.

    Zurzeit sieht es so aus, dass ich das hier benutze:
    PHP-Code:
    if (isset($_GET['page'])) {
                
    $page $_GET['page'];
            } else {
                
    $page "";
    }
    switch(
    $page) {
        case 
    'home':
        include 
    'home.php';

    In den Links verwende ich dann
    Code:
    ?page=home
    Somit ergibt sich die URL
    Code:
    www.testseite.de/?page=home
    Das finde ich nicht so schön und würde gern
    Code:
    www.testseite.de/home
    so etwas haben.

    Nun weiß ich nicht genau wie ich anfangen soll. Ich habe auch schon die .htaccess angepasst, was mir irgendwie nichts gebracht hat.
    Hat hier jemand eine Idee wie ich so etwas lösen kann?


    Gruß
    ​​​​​​​


  • #2
    Huhu,

    das ist leider weder PHP, noch für Fortgeschrittene.
    Das ganze nennt sich Mod-Rewrite. Kannst/Musst du als Apache-Mod aktivieren.

    Weitere Infos:
    http://www.peterkropff.de/allgemeine..._rewrite_1.htm

    lg
    Patrick

    Kommentar


    • #3
      Natürlich,
      das habe ich vergessen zu erwähnen.
      mod_rewrite ist aktiviert. Trotzdem funktioniert es nicht.

      Das kann dann ja nur noch mit dem Provider zusammenhängen?

      Kommentar


      • #4
        Und wie sieht deine htaccess aus?

        Ev. hilft ja auch das: http://www.php-rocks.de/thema/58-ein...-umsetzen.html

        MOD: Verschoben von PHP-Fortgeschritten
        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


        • #5
          Trotzdem besteht ja noch das Problem mit
          Code:
          ?page=home
          Welches zurzeit über PHP gelöst ist und wenn ich es anders haben will vielleicht nur noch mit JavaScript zu lösen ist oder so?

          Die .htaccess sieht zurzeit so aus.

          Code:
          <IfModule mod_rewrite.c>
             RewriteEngine On
             RewriteRule ^(.*)\.php$ https://meineseite.de/unterordner/$1/ [R=301,L]
          </IfModule>
          Bei mir steht natürlich der richtige Seitenname und Unterordner drin.

          Kommentar


          • #6
            Die RewriteRule ist verkehrtherum. mod_rewrite ersetzt die ankommende URL in eine, die PHP versteht, nicht andersherum.

            Kommentar


            • #7
              Das funktioniert leider alles nicht.

              Selbst mit dem Generator http://www.generateit.net/mod-rewrite/index.php geht es nicht.

              Die .htaccess ist im Haupt und Unterverzeichnis, trotzdem funktioniert es nicht.

              Ich habe die Zeilen aus dem Post über mir ausprobiert, dann bin ich mittlerweile bei dem hier angelangt:

              Code:
              RewriteEngine
              OnRewriteRule ^([^/]*)\.html$ /testseite/?page=$1 [L]

              Aber das springt auch nicht an. Ich weiß langsam nicht mehr was ich noch machen soll.

              Kommentar


              • #8
                Aber das springt auch nicht an.
                hast du eine index.php in dem Verzeichnis?

                Kommentar


                • #9
                  Ja die index ist auch eine php Datei.

                  Kommentar


                  • #10
                    wird die Datei angesprochen?

                    Kommentar


                    • #11
                      Wie meinst du das?
                      Also wenn ich auf meine Seite www.example.com gehe, öffnet sich diese ja.
                      Ich muss also kein /index.php öffnen.

                      Kommentar


                      • #12
                        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]

                        Kommentar


                        • #13
                          Triky313 Bitte nutze example.com, die ist extra dafür da. Die andere ist nämlich vermutlich NICHT "deineSeite"!
                          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


                          • #14
                            Zitat von hausl Beitrag anzeigen
                            Triky313 Bitte nutze example.com, die ist extra dafür da. Die andere ist nämlich vermutlich NICHT "deineSeite"!
                            Alles klar.


                            Also egal wie ich Seiten öffne, es bleibt immer ein .php oder auch andere Sachen dahinter.

                            www.example.com/test.php
                            www.example.com/test <- Funktioniert gar nicht

                            Auch meine Verwendung von Parametern mit ?page=test ändert sich nicht.
                            Es ist so als würde die .htaccess nicht existieren.

                            Kommentar


                            • #15
                              Also egal wie ich Seiten öffne, es bleibt immer ein .php oder auch andere Sachen dahinter.
                              Das wirst du mit mod_rewrite auch nicht wegbekommen, da es nur Apache-intern arbeitet.

                              Kommentar

                              Lädt...
                              X