Ankündigung

Einklappen
Keine Ankündigung bisher.

URL Anzeige / Sprechende URLs

Einklappen

Neue Werbung 2019

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

  • URL Anzeige / Sprechende URLs

    Hallo,
    ich hab folgendes Problem: Ich möchte gern eine aufgerufene URL anders im Browser anzeigen. – Leider steh ich da irgendwie auf dem Schlau.

    Beispiel:

    Benutzer ruft folgende URL auf: https://example.com/index.php$params=XYZ&session=XYZ

    Im Browser soll jetzt aber folgendes angezeigt werden: https://example.com/start


    Die beiden Variablen benötige ich allerdings in einer PHP Datei.

    Wie muss ich das in der htaccess eintragen oder kann ich die URL Ausgabe auch in php anpassen?

    Mirko




  • #2
    Siehe zB hier: https://www.php-rocks.de/thema/58-ei...-umsetzen.html

    Und bitte example.com als Beispieldomain nehmen, die ist exttra dafür da, die von dir verlinkte gehört vermutlich nicht dir?!
    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


    • #3
      Ich hab mir das ganze mal durchgelesen, bin aber noch nicht ganz schlau draus geworden, bzw. bleibt eine URL unverändert. Mein Ziel war es erstmal alles nach der Index.php auszublenden.

      Folgendes steht jetzt in meiner htaccess:

      ## mod_rewrite aktivieren.
      RewriteEngine On

      ## Stammverzeichnis der Seite
      RewriteBase /

      ## Regeln
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d

      RewriteRule ^ index.php [QSA,L]

      Allerdings wird alles nach der index.php immer noch angezeigt.


      Mirko


      Kommentar


      • #4
        Was soll der Sinn davon sein? Wenn der Benutzer eine bestimmte URL aufruft, warum soll ihm dann eine andere angezeigt werden?

        Kommentar


        • #5
          Zitat von contraer Beitrag anzeigen
          Allerdings wird alles nach der index.php immer noch angezeigt.
          mod_rewrite schneidet auch keine GET-Parameter aus URLs weg sondern sorgt für eine interne Umleitung.

          Du könntest deine URL z.B. so aufbauen https://example.com/ABC/XYZ, per mod_rewrite auf die index.php umleiten und dann deinem URL-Router sagen:
          1. Parameter = $sessionID
          2. Parameter = $userID
          sorry, shift-taste kaputt

          Kommentar


          • #6
            Genau so wie hier im Forum.. Schaut dir mal die URL dieses Themas oben an,
            Code:
            https://www.php.de/forum/webentwicklung/server-hosting-und-workstations/1564058-url-anzeige-sprechende-urls
            oder dein Userprofil:
            Code:
            https://www.php.de/member/22612-contraer
            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


            • #7
              Ich hab ein ähnliches Problem und bekomme es einfach nicht hin

              Ich würde gerne sprechende URL's zu einem Unterordner mit Parameter weiterleiten.

              HTML-Code:
              httpdocs (Webspace www.example.com
                    |
                    |-----> test (Ordner)
                               |----> .htaccess
                               |----> index.php (Hauptseite)
                               |----> stra (Ordner)
                                         |----> index.php (Unterseiter)
              Nun würde ich gerne einen Link in der Hauptseite anklicken. z.B. www.example.com/test/strategie/donner

              Dieser soll dann unsichtbar zu der URL www.example.com/test/stra/index.php?link=donner weitergeleitet werden

              In der .htaccess Datei hab ich folgendes eingetragen:

              Code:
              RewriteEngine on
              RewriteRule ^/strategie/(.*)$ /stra/index.php?link=$1

              Kann mir einer erklären wo da der Fehler liegt?

              thx

              P.S.:

              Fehler gefunden..

              Code:
              RewriteEngine on
              RewriteRule ^strategie/(.*)$ stra/index.php?link=$1
              http://phpcodechecker.com/

              Kommentar


              • #8
                IMHO falsche Herangehensweise. Leite alle Anfragen an eine einzige index.php um und entscheide dort, was gemacht wird.

                Nutze hierzu folgende .htaccess:
                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


                • #9
                  Zitat von hellbringer Beitrag anzeigen
                  IMHO falsche Herangehensweise. Leite alle Anfragen an eine einzige index.php um und entscheide dort, was gemacht wird.

                  Nutze hierzu folgende .htaccess:
                  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]
                  Und wie soll ich damit den GET Parameter übergeben?
                  index.php?link=$1 funktioniert nicht
                  http://phpcodechecker.com/

                  Kommentar


                  • #10
                    funktioiniert nicht ???
                    wo übergeben ?

                    index.php/link="foo"

                    und in der index.php
                    var_dump ($_GET);


                    Kommentar


                    • #11
                      Ich möchte sprechende URL's haben und nichts bei dem zum Schluß wieder index.php oder ?link= in der Adressleiste steht.
                      http://phpcodechecker.com/

                      Kommentar


                      • #12
                        War/Ist doch im Ansatz hier gut erklärt. Was fehlt dir noch?
                        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


                        • #13
                          Zitat von PeterHansPaul Beitrag anzeigen
                          Und wie soll ich damit den GET Parameter übergeben?index.php?link=$1 funktioniert nicht
                          Gar nicht. Du brauchst keinen GET-Parameter. Alle Infos stehen ja eh schon in der URL, also in $_SERVER['REQUEST_URI']..

                          Kommentar


                          • #14
                            Ok, habs jetzt verstanden anstatt einen Parameter zu übergeben benutzt man einfach die ausgaben von $_SERVER['REQUEST_URI']. thx

                            Gibt es noch eine bessere Variante für die Verlinkung der css und js Dateien als die absoluten Pfade zu verwenden ?
                            http://phpcodechecker.com/

                            Kommentar


                            • #15
                              Zitat von PeterHansPaul Beitrag anzeigen
                              Gibt es noch eine bessere Variante für die Verlinkung der css und js Dateien als die absoluten Pfade zu verwenden ?
                              https://wiki.selfhtml.org/wiki/HTML/Kopfdaten/base

                              Kommentar

                              Lädt...
                              X