Ich muss eine Website erstellen, die Artikel enthält, und ich möchte dafür freundliche URLs erstellen, beispielsweise die URL der Seite mit
Titel: Artikeltest
sollte werden : http://www.example.com/articles/article_test
.
Natürlich muss ich einige Zeichen wie ?
oder aus dem Titel entfernen #
, aber ich bin mir nicht sicher, welche ich entfernen soll.
Kann mir jemand sagen, welche Charaktere sicher aufbewahrt werden können?
url
friendly-url
Paulo
quelle
quelle
Antworten:
So zitieren Sie Abschnitt 2.3 von RFC 3986 :
"Zeichen, die in einer URI zulässig sind, aber keinen reservierten Zweck haben, werden als nicht reserviert bezeichnet. Dazu gehören Groß- und Kleinbuchstaben, Dezimalstellen, Bindestrich, Punkt, Unterstrich und Tilde."
Beachten Sie, dass RFC 3986 weniger reservierte Satzzeichen enthält als der ältere RFC 2396 .
quelle
ç
undõ
?post-title-with-%C3%A7-and-%C3%B5
, wird aber weiterhin in der Positionsleiste des Benutzers als angezeigtpost-title-with-ç-and-õ
.Es gibt zwei Zeichensätze, auf die Sie achten müssen: reserviert und unsicher .
Die reservierten Zeichen sind:
Die allgemein als unsicher geltenden Zeichen sind:
Möglicherweise habe ich eine oder mehrere vergessen, was dazu führt, dass ich die Antwort von Carl V wiederhole. Auf lange Sicht ist es wahrscheinlich besser, eine "weiße Liste" zulässiger Zeichen zu verwenden und dann die Zeichenfolge zu codieren, als zu versuchen, mit Zeichen Schritt zu halten, die von Servern und Systemen nicht zugelassen werden.
quelle
#
ist ein reserviertes Zeichen, das für Lesezeichen auf einer bestimmten Seite verwendet wird und aus einem HTML-Element mit einem übereinstimmenden#
Namensattribut oder ID-Attribut (sans -symbol) besteht.~
unsicher ist. Bist du sicher, dass es so ist?Am besten behalten Sie nur einige Zeichen (Whitelist), anstatt bestimmte Zeichen (Blacklist) zu entfernen.
Sie können jedes Zeichen technisch zulassen, solange Sie es ordnungsgemäß codieren. Um im Geiste der Frage zu antworten, sollten Sie jedoch nur die folgenden Zeichen zulassen:
Alles andere hat eine möglicherweise besondere Bedeutung. Zum Beispiel könnten Sie denken, Sie könnten + verwenden, aber es kann durch ein Leerzeichen ersetzt werden. & ist auch gefährlich, insbesondere wenn einige Umschreiberegeln verwendet werden.
Lesen Sie wie bei den anderen Kommentaren die Standards und Spezifikationen für vollständige Details.
quelle
Immer sicher
Diese sind sicher (in Theorie / Spezifikation), im Grunde überall außer dem Domainnamen.
Prozentcodieren Sie alles, was nicht aufgeführt ist, und Sie können loslegen.
Manchmal sicher
Nur sicher, wenn innerhalb bestimmter URL-Komponenten verwendet; Vorsichtig verwenden.
Niemals sicher
Gemäß der URI-Spezifikation (RFC 3986) müssen alle anderen Zeichen prozentual codiert sein. Das beinhaltet:
Wenn maximale Kompatibilität ein Problem darstellt, beschränken Sie den Zeichensatz auf AZ az 0-9 - _.
(mit Punkten nur für Dateinamenerweiterungen).
Denken Sie an den Kontext
Selbst wenn eine URL pro Spezifikation gültig ist, kann sie je nach Kontext dennoch "unsicher" sein. Beispiel: Eine Datei: /// URL mit ungültigen Dateinamenzeichen oder eine Abfragekomponente mit "?", "=" Und "&", wenn sie nicht als Trennzeichen verwendet werden. Die korrekte Behandlung dieser Fälle hängt im Allgemeinen von Ihren Skripten ab und kann umgangen werden. Beachten Sie dies jedoch.
quelle
=
dies für Anfragen nicht sicher ist. Beispielsweise akzeptiert FIQL Gleichheitszeichen und beschreibt sich selbst als "URI-freundlich" und "optimiert und für die Verwendung in der Abfragekomponente vorgesehen". In meiner Interpretation erlaubt RFC 3986 explizit "=", "&", "+" und andere in Abfragen.params.toString() // "key=730d67"
" (3) PHP-Handbuch, http-build-query: "Generieren Sie eine URL-codierte Abfragezeichenfolge. [...] Das obige Beispiel gibt Folgendes aus:0=foo&1=bar[...]
"(4) J. Starr, Perishable Press:" Beim Erstellen von Webseiten ist es häufig erforderlich, Links hinzuzufügen, für die parametrisierte Abfragezeichenfolgen erforderlich sind. "Mit Blick auf RFC3986 - Uniform Resource Identifier (URI): Generische Syntax dreht sich Ihre Frage um die Pfadkomponente eines URI.
Unter Berufung auf Abschnitt 3.3 sind gültige Zeichen für einen URI
segment
vom Typpchar
:Was zerfällt zu:
Oder mit anderen Worten: Sie können verwenden eine beliebige (nicht-Steuerungen) Zeichen aus dem ASCII - Tabelle , ausnehmen
/
,?
,#
,[
und]
.Dieses Verständnis wird durch RFC1738 - Uniform Resource Locators (URL) unterstützt .
quelle
-
und;
sicher, das ist meine Antwort und RFC klar.nicht reserviert = ALPHA / DIGIT / "-" / "." / "_" / "~"
quelle
Aus dem von Ihnen beschriebenen Kontext vermute ich, dass das, was Sie tatsächlich versuchen, als "SEO-Slug" bezeichnet wird. Die allgemein bekannteste Praxis für diese ist:
Als Beispiel würde ein Artikel mit dem Titel "Die Verwendung von! @% $ * Zur Darstellung des Fluchens in Comics" eine Menge "Verwendung, die das Fluchen von Comics darstellt" erhalten.
quelle
Das Format für einen URI ist in RFC 3986 definiert . Siehe Abschnitt 3.3 für Details.
quelle
Aus SEO-Sicht werden Bindestriche Unterstrichen vorgezogen. In Kleinbuchstaben konvertieren, alle Apostrophe entfernen und dann alle nicht alphanumerischen Zeichenfolgen durch einen einzigen Bindestrich ersetzen. Schneiden Sie überschüssige Bindestriche von Anfang und Ende ab.
quelle
Ich hatte ein ähnliches Problem, wollte hübsche URLs haben und kam zu dem Schluss, dass ich nur Buchstaben, Ziffern und _ in URLs zulassen muss. Das ist in Ordnung, dann habe ich einen schönen regulären Ausdruck geschrieben und festgestellt, dass alle UTF8-Zeichen keine Buchstaben in .NET sind und verschraubt wurden. Dies scheint ein bekanntes Problem für die .NET-Regex-Engine zu sein. Also bin ich zu dieser Lösung gekommen:
quelle
Ich fand es sehr nützlich, meine URL in eine sichere zu verschlüsseln, als ich einen Wert über ajax / php an eine URL zurückgab, die dann erneut von der Seite gelesen wurde.
PHP-Ausgabe mit URL-Encoder für das Sonderzeichen &
Hoffe, jemand findet meine kleinen Code-Auszüge nützlich! :) :)
quelle
Ich denke, Sie suchen nach etwas wie "URL-Codierung" - Codierung einer URL, damit sie im Web "sicher" verwendet werden kann:
Hier ist eine Referenz dafür. Wenn Sie keine Sonderzeichen möchten, entfernen Sie einfach alle Zeichen, für die eine URL-Codierung erforderlich ist:
http://www.w3schools.com/TAGS/ref_urlencode.asp
quelle
Zwischen 3-50 Zeichen. Kann Kleinbuchstaben, Zahlen und Sonderzeichen enthalten - Punkt (.), Bindestrich (-), Unterstrich (_) und mit der Rate (@).
quelle