Skonfigurowałem moją aplikację coldfusion tak, aby miała dynamiczne adresy URL na stronie, takie jak
www.musicExplained/index.cfm/artist/:VariableName
Jednak moje nazwy zmiennych będą czasami zawierać ukośniki, takie jak
www.musicExplained/index.cfm/artist/GZA/Genius
Powoduje to problem, ponieważ moja aplikacja zakłada, że ukośnik w nazwie zmiennej reprezentuje inną sekcję witryny, albumy artystów. Więc adres URL nie powiedzie się.
Zastanawiam się, czy w ogóle jest, aby temu zapobiec? Czy muszę używać funkcji zastępującej ukośniki w nazwach zmiennych innym znakiem?
Odpowiedzi:
Musisz uciec przed ukośnikami jako
%2F
.źródło
/
i przerywają trasę. :(encodeURIComponent
idecodeURIComponent
do tego celu.Możesz łatwo zamienić ukośniki na
/
coś w rodzaju podkreślenia,_
takiego jak Wikipedia używa spacji. Zastępowanie znaków specjalnych podkreśleniami itp. Jest powszechną praktyką.źródło
UNderscores ARE BAD FOR SEO
komentarza. Podkreślenia są interpretowane przez Google jako podkreślenia, myślniki / łączniki są interpretowane jako spacje. Czemu? Koderów, wielu programistów używa Google (w tym samych Google od samego początku), jeśli traktowaliby podkreślenia jako spacje, których nie można już znaleźćfoo_bar
(prawdopodobnie jakiejś klasy) w wynikach wyszukiwania. Bla bla… Podsumowując: podkreślenia nie są złe dla SEO, jeśli rozumiesz, jak faktycznie działa wyszukiwarka, do której „optymalizujesz”.Musisz z nich uciec, ale nie zastępuj go
%2F
ręcznie. Możesz użyćURLEncoder
do tego.Na przykład
URLEncoder.encode(url, "UTF-8")
Wtedy możesz powiedzieć
źródło
encodeURIComponent
, w3schools.com/jsref/jsref_encodeuricomponent.aspSprawdź tę stronę w3schools o „HTML URL Encoding Reference”: https://www.w3schools.com/tags/ref_urlencode.asp
dla / uciekniesz z% 2F
źródło