20 Stimmen

Welche Zeichen kann man in einer URL verwenden?

Ich habe eine Anwendung, die alle Parameter in der Url wie folgt übernimmt: /category/subcategory/sub-subcategory . Ich möchte in der Lage sein, zusätzliche Parameter am Ende der URL zu übergeben, wie page-2/order-desc . Dies würde die gesamte URL in cat/subcat/sub-subcat{delimiting-character}page-2/order-desc .

Meine Frage ist: Welche Zeichen könnte ich als {delimiting-character} . Ich bevorzuge ":", da ich sicher weiß, dass es nirgendwo anders auftauchen wird, aber ich weiß nicht, ob es der Norm entspricht oder ob es mir in Zukunft keine Probleme bereiten wird.

Wenn ich mich recht erinnere, hat Vimeo etwas Ähnliches verwendet: vimeo.com/video:{code} aber sie scheinen dies geändert zu haben.

25voto

andrew Punkte 2018

Sie können alphanumerische Zeichen sowie die Sonderzeichen "$-_.+!*'()," verwenden. Mehr Informationen hier: http://www.ietf.org/rfc/rfc1738.txt

Achten Sie auch darauf, dass die URL nicht mehr als 2000 Zeichen enthält.

2 Stimmen

En + ist ein bisschen heikel - es sollte immer richtig kodiert sein, und selbst dann...

0 Stimmen

@andrew Vielen Dank für diesen Hinweis... Ich verwende die Tilde (~) in meinen URLs schon seit Jahren als Trennzeichen für Daten. Aus Ihrer RFC-URL habe ich soeben erfahren, dass dies ein Risiko birgt. Danke und +1 für diese Erkenntnis.

5 Stimmen

Hier ist der Text aus der URL: Andere Zeichen sind unsicher, weil Gateways und andere Transportagenten dafür bekannt sind, dass sie solche Zeichen manchmal verändern. Diese Zeichen sind "{", "}", "|", "\", "^", "~","[", "]", und "`"

8voto

McDowell Punkte 105255

Die neueste URI-Spezifikation ist RFC 3986; siehe die ABNF für Details darüber, welche Zeichen in welchen Teilen des URIs erlaubt sind.

Das Format für einen absoluten Pfadteil ist:

  path-absolute = "/" [ segment-nz *( "/" segment ) ]
  segment       = *pchar
  segment-nz    = 1*pchar
  pchar         = unreserved / pct-encoded / sub-delims / ":" / "@"
  pct-encoded   = "%" HEXDIG HEXDIG
  unreserved    = ALPHA / DIGIT / "-" / "." / "_" / "~"
  sub-delims    = "!" / "$" / "&" / "'" / "(" / ")"
                      / "*" / "+" / "," / ";" / "="

2voto

James L Punkte 15626

Véase http://www.ietf.org/rfc/rfc1738.txt

Grundsätzlich sind alle aphanumerischen Zeichen erlaubt, sowie $ - _ . + ! * ' ( ) ,

0 Stimmen

Danke! Ich werde mich für "." entscheiden, da die anderen in einer URL etwas deplatziert aussehen (und _ und - könnten an anderen Stellen in meiner URL vorkommen) :)

1voto

Adam Klein Punkte 1

Wenn Sie Bindestriche oder Unterstriche verwenden, denken Sie daran, dass ein Bindestrich von Google als Bindestrich gelesen wird und daher nichts an der Kategorisierung Ihrer URL ändert. Ein Unterstrich wird als Zeichen gezählt und kann Ihr SEO durcheinander bringen.

Beispiel: dash-use = Bindestrich-Verwendung (2 Wörter); underscore_use = underscore_use (1 Wort)

0voto

alexyorke Punkte 4129

Sie können einen Bindestrich oder einen Unterstrich verwenden (diese werden häufig verwendet). Sie können jedes beliebige Zeichen verwenden, aber z. B. werden Leerzeichen in der URL zu %20, so dass sie nicht besonders schön aussehen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X