javascript leerzeichen Warum unterbricht URL-Codierung den ersten Schrägstrich nach der Domain die URL?

Uncategorized

php url encode
(1)

Das / ist ein reserviertes Zeichen. Es entspricht nicht %2f . Wenn Sie den Schrägstrich ohne seine definierte Bedeutung benötigen, verwenden Sie das codierte Formular.

Siehe RFC 3986: “Reservierte Zeichen” :

Der Zweck von reservierten Zeichen besteht darin, eine Reihe von begrenzenden Zeichen bereitzustellen, die von anderen Daten innerhalb eines URI unterscheidbar sind. URIs, die sich in der Ersetzung eines reservierten Zeichens durch das entsprechende prozentcodierte Oktett unterscheiden, sind nicht äquivalent. Wenn Sie ein reserviertes Zeichen in Prozent dekodieren oder ein prozentcodiertes Oktett dekodieren, das einem reservierten Zeichen entspricht, ändert sich die Interpretation des URI durch die meisten Anwendungen.

Der Grund, warum die angegebene URL immer noch funktioniert, wenn Sie das reservierte Zeichen / für den zweiten Schrägstrich nicht verwenden: Ihr CMS sucht einfach nach dem ID-Teil in der URL. So können Sie der URL beliebig hinzufügen, zB sollte das folgende noch funktionieren:

http://dottech.org/95285/hey-this-URL-got-featured-at-stackoverflow

(Es scheint jedoch, dass es in ihrem Fall immer noch oder %2f sein muss.)

Wenn Sie es mit einem Wikipedia-Artikel versuchen, wird auf die Titelseite umgeleitet:

http://en.wikipedia.org/wiki%2fStack_Overflow

Salvete! Ich habe entdeckt, dass eine bestimmte Art der URL-Codierung die Verbindung bricht. Für den Datensatz stellt %2f den Schrägstrich dar: /

Nun, bedenke das: Original Link: http://dottech.org/95285/this-is-the-pacific-barreleye-a-fish-with-a-transparent-head-amazing-photo-of-the-day

javascript ( encodeURIComponent ) urlencodierter Link: http://dottech.org%2f95285%2fthis-is-the-pacific-barreleye-a-fish-with-a-transparent-head-amazing-photo-of-the-day

Wenn Sie nun den codierten Link in die Adressleiste Ihres Browsers einfügen, ist er beschädigt (Firefox, Chrome, IE).

Wenn Sie jedoch den ersten Schrägstrich nicht url-encodieren, funktioniert das perfekt: ” http://dottech.org/95285%2fthis-is-the-pacific-barreleye-a-fish-with-a-transparent-head-amazing-photo-of-the-day

Warum?

Source

Sharing is caring!

Leave a Reply