URL für SEO Friendly Title mit Bindestrichen statt ID setzen

8

Ich verwende AngularJS, um eine Seite mit Artikeln mit Links für Details zu den einzelnen Artikeln zu erstellen. Die Links basieren auf der ID, um sicherzustellen, dass sie eindeutig sind, aber ich möchte, dass die URLs der Titel mit Bindestrichen sind (viel mehr SEO / benutzerfreundlich) und nicht die ID. Hier ist das Eckige Beispiel, wo die Produktdetails sind saubere Titel:

Ссылка

Meine aktuellen URLs sind mit einer ID verknüpft, sodass sie als Artikel / 66D5069C-DC67-46FC-8A51-1F15A94216D4

angezeigt werden

Ich möchte, dass sie als Artikeltitel angezeigt werden, wie Artikel / Start-Investing, und stellen Sie sicher, dass sie SEO-freundlich sind.

Meine Sorge ist, dass, wenn zwei Artikel von verschiedenen Autoren den gleichen Titel haben (z. B. etwas über das Investieren lernen), ich Fehler bekommen werde, wenn ich versuche, nach Titel zu verlinken / nach ID zu suchen, die pro Artikel eindeutig ist.

Hier sind meine Controller:

%Vor%

Hier ist mein Router:

%Vor%

Hier sind meine zwei Teile:

Categories.html (mehrere Artikel)

%Vor%

Article.html (einzelner Artikel)

%Vor%

Hier ist ein Beispiel meiner JSON-Ausgabe:

%Vor%

Muss ich eine Art URL-Rewrite durchführen, und wenn ja, wie mache ich das in Angular? Gibt es eine andere Möglichkeit, den Link mit einer ID eindeutig zu machen, oder sind andere nur mit dem Titel verlinkt?

    
Kode 02.12.2014, 22:38
quelle

4 Antworten

2

Ich würde empfehlen, zusätzlich zur bestehenden Route eine andere Route hinzuzufügen

%Vor%

Für Ihren Fall können Sie die folgenden Links haben, die auf die gleiche Seite gehen.

%Vor%

Der zweite funktioniert genauso wie der erste

    
allenhwkim 17.12.2014, 15:41
quelle
1

Sie können eine der folgenden Optionen verwenden, ich habe sie nach meinen Wünschen geordnet:

  1. Verwenden Sie einfach den formatierten Titel in URL und fügen Sie nichts hinzu, es sei denn, es gibt eine Kollision zwischen Titeln. Im Falle einer Kollision in Titel, dann verwenden Sie eine der folgenden Methoden, um zwischen ihnen zu unterscheiden. Ihre Route würde wie '/ articles /: formatiertTitel' aussehen. Wenn es mehrere Artikel in der Datenbank mit demselben Titel gibt und es keine expliziten Indikatoren gibt, welche davon ausgewählt werden soll, dann gehen Sie weiter und wählen Sie den zuerst erstellten aus.
  2. Erstellen Sie ein neues Feld mit dem Namen textKey, und füllen Sie dieses Feld automatisch basierend auf dem Titel des Artikels. z.B. einer wird Ссылка ergeben und der nächste führt zu Ссылка . Ihre Route würde wie '/ articles /: textKey' aussehen
  3. Erstellen Sie ein neues Feld namens discriminator mit dem Standardwert Null, um es nur dann aufzufüllen, wenn in Titeln Kollisionen auftreten. z.B. einer wird Ссылка ergeben und der nächste führt zu Ссылка . Ihre Route würde wie '/ articles /: formatiertTitel /: diskriminator'
  4. aussehen
  5. fügen Sie sowohl ID als auch Titel hinzu, z. man wird zu Ссылка führen und der nächste ergibt Ссылка . Ihre Route würde folgendermaßen aussehen: '/ articles /: formatiertTitle /: id'
Aidin 17.12.2014 22:56
quelle
1

Ich würde vorschlagen, dass Sie den Benutzernamen des Autors auch in der URL verwenden, damit die Route wie

aussieht %Vor%

Dies würde das Problem lösen, dass verschiedene Autoren denselben Artikeltitel haben (aber jetzt würde es ein Problem geben, wenn der Autor zwei Artikel mit demselben Titel veröffentlicht. Dazu können Sie entweder das Jahr oder den Monat in die URL eingeben, um es zu machen einzigartig)

Sie können auch eine andere Ansicht erstellen, in der der Autor alle Artikel sehen kann (Route wäre wie)

%Vor%     
Prayag Verma 18.12.2014 03:39
quelle
0

Die Verwendung von js zur Generierung Ihrer Seite ist nicht sehr SEO-konform ... Und warum gibt es ein "article-link" -Attribut in deinem JSON ..?

Wenn dieser Link nicht nutzlos ist, können Sie einfach den HTML-Inhalt abrufen und die Ausgabe analysieren, um Ihr Produktobjekt zu erstellen.

Oder besser, Sie sollten Ihre serverseitige Implementierung überarbeiten, denn wenn Sie einen HTML-Code mit einer GET-Anfrage für http://www.thebudgetcalculator.com/start-investing.html erhalten, sollten Sie ihn für JSON-API-Aufrufe wie http://www.thebudgetcalculator.com/api/articles/start-investing

    
n00dl3 15.12.2014 12:59
quelle

Tags und Links