Ankündigung

Einklappen
Keine Ankündigung bisher.

MVC SEO Urls

Einklappen

Neue Werbung 2019

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

  • MVC SEO Urls

    Hallo,

    ich beschäftige mich seit kurzen mit dem MVC-Pattern. Klappt soweit auch ganz gut. Nun möchte ich die URLs meiner Anwendung noch schöner darstellen.

    Im Moment kann ich alles aufrufen über http://localhost/action/view. Was ich aber möchte ist das ich das ganze auch über http://localhost/alias.html aufrufen möchte.

    Welcher Ansatz ist der richtige? Im Moment würde mir nur einfallen eine Datenbanktabelle zu erstellen in denen ich alias und aufruf pflege. Ist aber Handarbeit.

    Gibt es eine Möglichkeit für eine automatisierung? Kann ich der View nicht einen Alias mitgeben?

    Beste Grüße
    Stephan


  • #2
    Beim Zend Framework wird das über so genannte Routen abgewickelt. Da kannst du eine Route definieren, diese besagt: "alias.html" soll immer zu Controller = bla, Action = blub weitergeleitet werden. Diese Routen werden dann dem Router übergeben der die URLs entsprechend auflöst. Die Routen können aus beliebigen Quellen stammen (Datenbank, XML Datei, INI, PHP Arrays ...).

    Kommentar


    • #3
      Mit MVC hat das überhaupt nichts zu tun.
      --

      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
      Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


      --

      Kommentar


      • #4
        Ich hab es halt als MVC angelegt. Bleibt mir wohl nichts anderes übrig als eine Tabelle mit den Routen zu pflegen. Vielen Dank für die Info.

        Kommentar


        • #5
          Ich stimme nikosch absolut zu. Das hat weder etwas mit MVC zu tun, noch ist das URL-Layout das du hier vorstellst für komplexere Anwendungen verwendbar. Wenn du wirklich SEO-optimierte URLs haben willst, darf da nichts mit Action und Controller enthalten sein, sondern wirklich nur die Titel/Keywords der jeweils gewählten Seite.

          SEO-optimiert wäre also folgendes: http://www.my-company.com/new-products-in-2010
          Viele Grüße,
          Dr.E.

          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          1. Think about software design before you start to write code!
          2. Discuss and review it together with experts!
          3. Choose good tools (-> Adventure PHP Framework (APF))!
          4. Write clean and reusable software only!
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

          Kommentar


          • #6
            dann habe ich mich wohl falsch ausgedrückt. Ich möchte ja URls wie http://www.my-company.com/new-products-in-2010. Habe nur ein Problem mit dem Ansatz wie ich das meiner Anwendung beibringe.

            Kommentar


            • #7
              Naja aber wenn ich lauter solche: http://www.example.com/new-products-in-2010 URLs verwende woher soll dann mein Script wissen es genau suchen soll ?

              Wenn ich nun aber sowas mach: http://www.example.com/products/2010

              Dann hätte ich schonmal mit products meinen Controller oder könnte schonmal einschränken wo er suchen soll...


              Grüße
              Signatur:
              PHP-Code:
              $s '0048656c6c6f20576f726c64';
              while(
              $i=substr($s=substr($s,2),0,2))echo"&#x00$i;"

              Kommentar


              • #8
                Zitat von gosxw Beitrag anzeigen
                Ich hab es halt als MVC angelegt.
                Was bedeutet das?

                Zitat von gosxw Beitrag anzeigen
                Bleibt mir wohl nichts anderes übrig als eine Tabelle mit den Routen zu pflegen. Vielen Dank für die Info.
                Das sollte für Webseiten möglichst so realisiert werden, dass du den Pflege-Aufwand auf eine Seite beziehst nicht von dieser entfernst. Jede Seite eines CMS sollte beispielsweise einen eindeutigen Bezeichner - wie in meinem Beispiel genannt - besitzen, über den sie SEO-technisch sauber angesprochen werden kann.
                Viele Grüße,
                Dr.E.

                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                1. Think about software design before you start to write code!
                2. Discuss and review it together with experts!
                3. Choose good tools (-> Adventure PHP Framework (APF))!
                4. Write clean and reusable software only!
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

                Kommentar


                • #9
                  Zitat von ByStones Beitrag anzeigen
                  Naja aber wenn ich lauter solche: http://www.example.com/new-products-in-2010 URLs verwende woher soll dann mein Script wissen es genau suchen soll ?
                  Muss ich das wirklich beantworten? Du kannst doch einfach den Teil hinter der Domain nehmen und in einer DB-Abfrage auf deine Seiten-Inhalte verwenden.


                  Zitat von ByStones Beitrag anzeigen
                  Wenn ich nun aber sowas mach: http://www.example.com/products/2010

                  Dann hätte ich schonmal mit products meinen Controller oder könnte schonmal einschränken wo er suchen soll...
                  Wie ich schon sagte: eine Abhängigkeit der URL zur technischen Umsetzung ist nicht für große Projekte geeignet. Wenn du einem erfolgreichen Online-Marketing-Unternehmen sowas anbietest, wirst du den Zuschlag nicht bekommen.
                  Viele Grüße,
                  Dr.E.

                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                  1. Think about software design before you start to write code!
                  2. Discuss and review it together with experts!
                  3. Choose good tools (-> Adventure PHP Framework (APF))!
                  4. Write clean and reusable software only!
                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

                  Kommentar


                  • #10
                    Welcher Ansatz ist der richtige? Im Moment würde mir nur einfallen eine Datenbanktabelle zu erstellen in denen ich alias und aufruf pflege. Ist aber Handarbeit.

                    Gibt es eine Möglichkeit für eine automatisierung?
                    Klar kann man. Variante 1 beschert Dir optimalen Individualismus, aber Pflegeaufwand (Stichwort DRY), Variante 2 Automatismen, die aber damit verbunden sind, dass Du die Anwendung hochgradig struktur-normiert gestalten musst.
                    Kann ich der View nicht einen Alias mitgeben?
                    Macht wohl eher keinen Sinn. Denn für jeden Link von "außen" müsstest Du dann das jeweilige Modul anfragen, dass es Dir den Link erzeugt. Was bedeutet, dass Du alle zu verlinkenden Module einbinden musst, auch wenn sie für nichts weiter, als zur Linkerzeugung benötigt werden.
                    --

                    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                    --

                    Kommentar


                    • #11
                      Zitat von dr.e. Beitrag anzeigen
                      Jede Seite eines CMS sollte beispielsweise einen eindeutigen Bezeichner - wie in meinem Beispiel genannt - besitzen, über den sie SEO-technisch sauber angesprochen werden kann.
                      Ich habe aber kein CMS. Es wird nichts von einem User angelegt.

                      Nehmen wir das beispiel Kontaktformular. Ich möchte das nicht über /contact/index/ sondern über kontakt.htm aufrufen.

                      Den Alias "kontakt" kann ich dem Controller doch theoretisch mitgeben. Aber der Router kennt dann noch nicht. Also doch eine Tabelle mit routen?

                      Kommentar


                      • #12
                        Ja zum Beispiel eine Tabelle mit Routen, oder ein Array mit Routen oder oder oder ... siehe mein Post oben.

                        Kommentar


                        • #13
                          Habe es jetzt über eine Tabelle gelöst. Vielen Dank für die ganzen Hinweise.

                          Kommentar

                          Lädt...
                          X