Ankündigung

Einklappen
Keine Ankündigung bisher.

Canonical URL

Einklappen

Neue Werbung 2019

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

  • Canonical URL

    Hallo, ich stehe mal wieder total auf dem Schlauch!

    Die Prüfung nach der Angabe des Canonical scheint bei mir nicht richtig zu sein.

    Auf meiner Seite habe ich verschiedene Gebäude gespeichert.
    Diese rufe ich immer z. B. mit https://meineseite.de/?seite=gebaeude&id=1 auf.

    Vergleichbare Seiten rufen die unterschiedlichen Seiten mit jeweiligen Unterordnern auf.
    Beispiel: https://meineseite.de/gebaeude/name-des-gebaeudes/

    Letzteres würde doch bedeuten, dass ich entsprechende Ordner-Strukturen für jedes Gebäude anlege.
    Das Ganze soll allerdings dynamisch passieren.

    Wie kann ich das umsetzen, damit das mit den canonical urls funktioniert?

    Bitte einen "Stubser" in die richtige Richtung.
    Danke!

  • #2
    Solls in die Richtung gehen?
    http://www.htaccessredirect.de/
    bitcoin.de <- Meine Freelancerwährung

    Kommentar


    • #3
      Da bin ich mir, wie gesagt nicht sicher. Habe die Seite gerade einmal angeschaut.

      In beiden meiner Beispiele sollte, idealerweise, die gleiche Seite geladen werden.
      Dann könnte ich das mit dem Dateipfad als kanonische URL in den Header der Seite schreiben und die SEO-Tools schlagen diesbezüglich nicht mehr an (so mein momentanes Verständnis).
      Ich gebe aber gerne zu, dass ich persönlich doch echt im Dunkeln tappe, trotz dem ich viele Videos zu dem Thema "canonical" gesehen habe und auch einiges gelesen habe.
      Viele Shops haben offenbar das Gleiche Problem. Allerdings ist mir hier unklar wie die dass umsetzen (wie zu Beginn beschrieben).

      Kommentar


      • #4
        Vielleicht gehst Du da falsch an die Sache. Wichtig wäre ja zu wissen, was Du vor hast. So wie du es beschrieben hast, verstehe ich, dass Du beliebige URLs aufrufen willst ohne, dass die Ordner existieren müssen. Die Ordner brauchst Du nicht, da mit dem Redirect die Werte in einer Variablen landen, die Du einfach weiter nutzen kannst, wies dir beliebt. Meist werden PHP-Seite über eine einzige index.php behandelt.

        Nutze übrigens in Zukunft example.com als Beispielseite und keine fremden Adressen. Diese wurde extra dafür geschaffen.
        bitcoin.de <- Meine Freelancerwährung

        Kommentar


        • #5
          Wegen SEO und doppelten URLs(und somit Content) kannst du diese auch von den Suchmaschinen ausschliessen, mache ich bei der Suche so, damit die nicht alle von den Suchmaschinen gegrawlt werden.
          Siehe dazu auch https://developers.google.com/search...-content?hl=de

          Kommentar


          • #6
            Das kann gut sein, dass ich da falsch rangehe.
            Fakt ist, dass ich das mit den canonischen URLs offenbar nicht richtig verstehe / umgesetzt habe, denn in der Google Search Console wird mir immer wieder ausgewiesen, dass die URL nicht als kanonisch ausgewiesen ist.
            Auf meiner Seite habe ich das in den Meta Informationen hinterlegt:
            Code:
            <link rel=“canonical”href=“https://www.example.com/?cf=contact” />
            Das ist doch aber nicht der kanonische Link, richtig?

            Nehmen wir dieses Forum zum Beispiel.

            Dieses Topic ist erreichbar unter:
            https://www.php.de/forum/webentwickl...-canonical-url

            Tatsächlich ist dies doch "nur" irgendeine ID in der Datenbank auf die man mit Übergabe entsprechender Attribute auch aufrufen kann.
            Zum Beispiel (das ist jetzt nur frei zusammengebaut): https://www.php.de/forum/forumid=1&topicid=1582606

            Wird soetwas über eine htaccess-Datei erreicht?
            Gibt es den Verzeichnispfad "forum" -> "webentwicklung" -> "php-einsteiger" -> "1582606-canonical-url" wirklich auf dem Server?

            PS: Sorry, wenn ich da so doof nachfrage!

            Kommentar


            • #7
              Eine URL hat nichts mit Verzeichnissen zu tun. Eine URL ist eine Adresse zu einer Ressource und diese Adresse ist vereinfacht gesagt einfach nur Text. Der Webserver bekommt vom Client (z.B. Browser) eine Anfrage zu einer Ressource, und der Webserver entscheidet dann anhand von definierten Regeln, was er mit dieser Adresse macht.

              In den meisten Fällen wird er die Adresse an irgendeine Anwendung weiterreichen (das kann z.B. eine PHP-Anwendung sein), die wieder eigene Regeln hat, was sie mit dieser Adresse macht.

              Also kurz gesagt muss die PHP-Anwendung die Adresse richtig behandeln. Aber hierfür muss nicht das Rad neu erfunden werden, sondern es gibt für PHP fertige Router, die das erledigen. Bei den meisten PHP-Frameworks ist sogar schon einer dabei.

              Hier mal ein ganz simples und rudimentäres Beispiel, wie so ein Router aussehen kann:

              https://www.taniarascia.com/the-simplest-php-router/

              Kommentar


              • #8
                Ich denke hier wird gut erklärt, wenn nicht, frag noch mal nach: https://de.semrush.com/blog/canonical-urls/

                Kommentar


                • #9
                  Schaue ich mir mal an... Danke für die Info, melde mich!

                  Kommentar


                  • #10
                    Hallo zusammen,

                    jetzt habe ich doch mal die Zeit gefunden, mich etwas näher mit dem Thema zu beschäftigen.

                    Ich will die folgende Seite aufrufen (derzeit ist der Link dynamisch so verbaut):
                    https://www.example.com/?cf=resident&reqResident=19

                    In meiner ".htaccess"-Datei im Root meiner Website steht nun der folgende Passus:
                    RewriteCond %{QUERY_STRING} cf=resident&reqResident=([0-9]+) [NC]
                    RewriteRule (.*) /content/residents/%1/? [R=301,L]
                    Das sorgt dafür, dass ein der cf-Request nach "resident" auch in der dafür vorgesehenen URL landet.

                    Das Ergebnis sieht aktuell so aus (die "19" ist in diesem Beispiel ein dynamischer Wert):
                    https://www.example.com/content/residents/19/ (dieser Pfad existiert aber nicht auf dem Server, hat aber in etwa das Format, welches ich haben will)

                    Bedauerlicherweise ist die aufgerufene Seite leer.
                    Mein aktueller Versuch besteht darin, die im Query-String übergebenen Daten an die zuständige index.php (im root der Seite) zu übergeben.

                    RewriteRule ^/index\.php?cf=resident&reqResident=%1$ /content/residents/%1/? [R=301,L]
                    Was mache ich falsch?

                    Kommentar


                    • #11
                      Warum willst du sowas machen?

                      Kommentar


                      • #12
                        Öhm... bin jetzt etwas irritiert. Um eindeutige URL's zu generieren um "duplicate content" zu vermeiden.

                        Kommentar


                        • #13
                          Hast Du das Router Beispiel von Hellbringer angesehen?

                          Alle Anfragen werden dort auf index.php gezeigt.

                          Mittels
                          PHP-Code:
                            $_SERVER['REQUEST_URI'
                          bekommst du die Uri. Jetzt kannst Du diese Parsen/verwenden wie du willst. Dies macht eigentlich jeder Router für dich.

                          Beispiel Slim

                          https://www.slimframework.com/docs/v...ts/router.html

                          Somit hast Du eigentlich schon das Problem gelöst und Du hast zugleich auch schon leserfreundlichere Urls.

                          Kommentar


                          • #14
                            Zitat von schmorhase Beitrag anzeigen
                            Öhm... bin jetzt etwas irritiert. Um eindeutige URL's zu generieren um "duplicate content" zu vermeiden.
                            Aber eine URL-Generierung findet in der PHP-Anwendung statt und nicht in .htaccess.

                            Kommentar

                            Lädt...
                            X