Domanda

Uno veloce.

Sto usando la riscrittura mod e ho la maggior parte delle sostituzioni in atto:

  • spazio vuoto = _
  • & # 230; = ae
  • & # 198; = ae

e così via.

Quale sarebbe il carattere di sostituzione naturale per / ?

Grazie

È stato utile?

Soluzione

Il carattere di sottolineatura è considerato come un carattere di parola, quindi foo_bar è una parola e non due parole. Ma il trattino non è considerato come un carattere di parola, quindi foo-bar è di due parole.

Quindi dovresti usare l'ipen - dove vuoi separare due parti e il carattere di sottolineatura _ dove vuoi connettere due parti. Nel caso di / utilizzato per separare, preferirei l'ipen - .

Altri suggerimenti

  
      
  • & # 198; = ae
  •   

Non devi necessariamente farlo. È possibile inserire caratteri Unicode non ASCII in un URL come byte codificati UTF-8. Quindi:

http://en.wikipedia.org/wiki/%C3%86

viene visualizzato nei browser come:

http://en.wikipedia.org/wiki/Æ

ed è possibile incollarli nella barra degli indirizzi.

Lo spazio e la barra possono essere codificati come% 20 e% 2F. Tuttavia, tali moduli vengono comunque visualizzati come percentuali nel browser, poiché sono altrimenti caratteri riservati. Quindi non sembrano abbastanza belli. Esiste un ulteriore problema con% 2F in quanto gli ambienti di scripting tradizionali basati su CGI non sono in grado di leggerli e Apache per impostazione predefinita li blocca deliberatamente per impedire che tali script vengano confusi e lascino falle di sicurezza.

Quindi creo le lumache del titolo rimuovendo completamente:

# % ' ( ) ? [ ] (U+00AD soft hyphen)

insieme a tutti i caratteri di controllo (da U + 0000 a U + 001F tranne U + 00A0 e da U + 007F a U + 00BF). Quindi sostituendo qualsiasi esecuzione di:

" $ & * + , / : ; < = > @ \ ^ (U+0020 space) (U+000A newline)

con un singolo trattino basso. Ciò elimina la necessità che una sequenza% xx appaia nell'URL. (Per i caratteri Unicode ci saranno ancora% xx sequenze, ma l'utente non le vedrà.)

Se preferisci, puoi usare il trattino invece del trattino basso, a seconda di quale sia il più carino. Entrambi i motori di ricerca dovrebbero andare bene.

eta re commenta l'altra risposta:

  

Perché uso php per cercare il nome nel mio database. Quindi ogni personaggio deve essere riconvertito nel personaggio originale, altrimenti non verrà trovata alcuna corrispondenza.

In quel caso, però, non puoi fare nulla di irrinunciabile per i personaggi. Non puoi cambiare & # 8216; & # 198; & # 8217; a & # 8216; ae & # 8217 ;, gli spazi devono essere codificati come & # 8216;% 20 & # 8217; e taglia come & # 8216;% 2F & # 8217 ;. Ciò si tradurrà in URL leggermente brutti e & # 8216;% 2F & # 8217; ti darà problemi di distribuzione su Apache e IIS.

Se è necessario digitare solo un titolo, è necessario aggiungere una colonna (indicizzata UNIQUE) sulla lumaca elaborata per cercare, come suggerito sopra. Tuttavia, tieni presente che non puoi quindi rinominare / correggere un titolo di pagina, poiché cambierà la lumaca, rompendo l'URL.

Un approccio comune per aggirare questo è di includere un ID numerico oltre allo slug (vedi, ad esempio, come SO lo fa). Puoi anche reindirizzare 301 dove il nome della lumaca è errato per un SEO ottimale.

Vorrei usare un trattino, poiché Google separa parole come questa per scopi SEO, o anche un trattino basso _ poiché entrambi sono perfetti per la leggibilità.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top