Ankündigung

Einklappen
Keine Ankündigung bisher.

.php - Endungen verbergen mit modrewrite funktioniert nicht?

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

  • .php - Endungen verbergen mit modrewrite funktioniert nicht?

    Hallo,

    ich habe folgendes Problem: ich habe per modrewrite versucht die .php-Endungen aus den Domains zu nehmen. Einfach nur damit es schöner ist und die Domains einfacher zu merken sind.

    Habe eine .htaccess-Datei erstellt und folgendes eingegeben:

    Code:
    RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f
    
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}.php -f
    
    RewriteRule ^(.*)$ $1.php

    Der Code funktioniert zwar wenn man die Adresse direkt eingibt aber nicht wenn man über zum Beispiel das Menü geht.
    Die .php-Dateien liegen alle in einem Ordner.

    Außerdem muss man ja die Startseite index.php benennen damit der Provider sie im Ordner findet. Allerdings möchte ich das diese Seite anders heißt. Wie geht das?

    LG CVR



  • #2
    Welches Menü?

    Kommentar


    • #3
      Also man kann webseitenname.de/seite eingeben und die Seite erscheint. Aber in der Navigation bzw. ein Link auf der Seite muss ich <a href="seite.php">Seite</a> angeben. Also wieder mit der Endung .php und dann steht die Endung auch wieder in der Adresszeile sobald man sich auf der Seite bewegt. Die Endung soll aber immer weg sein!

      Kommentar


      • #4
        Ja und was hindert Dich nun daran, aus den Links die .php-Endung zu entfernen?

        Btw. solltest Du die Logik PHP seitig abbilden, einen kurzen Einstieg dazu findest Du hier: http://www.php-rocks.de/thema/58-ein...-umsetzen.html
        Ist eigentlich nicht viel anders, als das was Du eh schon hast.
        Competence-Center -> Enjoy the Informatrix
        PHProcks!Einsteiger freundliche Tutorials

        Kommentar


        • #5
          Wenn ich die .php-Endung entferne funktionieren die Links doch nicht mehr oder wie muss ich die dann schreiben?

          Im Moment sieht das so aus: <a href="about.php">a b o u t</a>

          Kommentar


          • #6
            cvr-design bitte keine Posts im Nachhinein verstümmeln, das macht den ganzen Thread sinnlos.

            Wenn erledigt, dann bitte noch kurz deine Lösung posten, damit auch andere was davon haben. So macht man das in einem Forum.


            [MOD: Verschoben von PHP-Einsteiger]
            PHP.de Wissenssammlung | Debugging: Finde DEINE Fehler selbst! | mysql_* ist veraltet! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__ | Kein Support per PN

            Kommentar


            • #7
              Zitat von cvr-design Beitrag anzeigen
              Wenn ich die .php-Endung entferne funktionieren die Links doch nicht mehr oder wie muss ich die dann schreiben?

              Im Moment sieht das so aus: <a href="about.php">a b o u t</a>
              Du hast doch selber geschrieben, dass eine Eingabe von http://www.example.com/seite die korrekte Seite anzeigt?!
              Dann funktioniert ja scheinbar Deine Umleitungsregel, wie Du es Dir vorstellst. Demnach muss auch ein Link in der Schreibweise funktionieren.

              Problem könnte allerdings sein, dass er das aktuelle URL-Target als Verzeichnis auswertet und daher in eine falsche Ebene leitet.
              In dem Fall muss das href so aussehen:
              HTML-Code:
              <a href="//www.examle.com/about">a b o u t</a>
              Competence-Center -> Enjoy the Informatrix
              PHProcks!Einsteiger freundliche Tutorials

              Kommentar


              • #8
                Ein
                Code:
                Options FollowSymLinks MultiViews
                in der .htaccess macht die Dateierweiterung beim verlinken für bekannte Dateitypen überflüssig. Es sollten dann aber eindeutige Dateinamen im Verzeichnis existieren.

                Kommentar


                • #9
                  Danke!! Ich saß die ganze Nacht an dieser Kleinigkeit. Auch wenn es Millionen von Lösungen im Netz gibt hat diese ein letzte Zeile gefehlt.
                  Also die .htaccess sieht dann jetzt so aus:

                  Code:
                  RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f
                  
                  RewriteCond %{REQUEST_FILENAME} !-d
                  RewriteCond %{REQUEST_FILENAME}.php -f
                  
                  RewriteRule ^(.*)$ $1.php
                  
                  Options FollowSymLinks MultiViews
                  Und die URLs brauchen dann keine Endung mehr!

                  Kommentar

                  Lädt...
                  X