Pergunta

Quick One.

Eu estou usando mod reescrever e tem a maioria das substituições no lugar:

  • espaço vazio = _
  • æ = ae
  • Æ = ae

e assim por diante.

Qual seria o personagem substituto natural para /?

Graças

Foi útil?

Solução

O sublinhado é considerado como um caractere de palavra, então foo_bar é uma palavra e não duas palavras. Mas o hífen não é considerado como um caractere de palavra, então foo-bar é duas palavras.

Então, você deve usar o - hypen onde quer que você separar duas partes eo _ sublinhado onde quer que você deseja conectar duas partes. No caso de / que é usado para separar, eu preferiria o - hypen.

Outras dicas

  • Æ = ae

Você não precisa necessariamente fazer isso. Você pode colocar não-ASCII caracteres Unicode em uma URL assim como UTF-8 bytes codificados. Assim:

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

é exibido em navegadores como:

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

e qualquer um pode ser colado na barra de endereços.

Space and slash podem ser codificados como% 20 e% 2F. No entanto, essas formas ainda não aparecem como porcentagens no navegador, porque eles são personagens de outra forma reservados. Assim, eles não parecem tão bonita. Há um problema adicional com% 2F em que os ambientes de script tradicionais baseados em torno de CGI não pode lê-los, e Apache por padrão deliberadamente blocos los a parar de tais scripts ficando confuso e deixando brechas de segurança.

Então eu faço lesmas título por remover completamente:

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

juntamente com os caracteres de controlo (L + 0000 a U + 001F excepto U + 00A0, + 007F e L para L + 00BF). Em seguida, substituindo qualquer prazo de:

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

com um único sublinhado. Isso elimina a necessidade de uma seqüência% xx para aparecer na URL. (Para os caracteres Unicode ainda haverá% xx seqüências, mas o usuário não vai vê-los.)

Você pode usar hífen em vez de sublinhado se preferir, o que for mais bonita. Os motores de busca deve estar bem com qualquer um.

comentário eta re em outra resposta:

Porque eu usar php para procurar o nome no meu banco de dados. Assim, cada personagem tem que estar de volta convertido para o carácter original pessoa páreo será encontrado.

Nesse caso, você não pode fazer nada irrecuperável para os personagens, no entanto. Você não pode mudar ‘Æ’ para ‘ae’, espaços devem ser codificado como ‘% 20’ e barras, como ‘% 2F’. Isso resultará em URLs ligeiramente feios, eo ‘% 2F’ lhe dará problemas de implantação no Apache e IIS.

Se você precisa de chave unicamente em um título que você vai precisar adicionar uma coluna (UNIQUE indexado) na lesma processada para olhar para cima, como sugerido acima. No entanto, note que você então não pode renomear / corrigir um título da página, uma vez que irá mudar a lesma, quebrando o URL.

Uma abordagem comum de contornar este problema é incluir uma identificação numérica além da lesma (ver, por exemplo, como SO faz isso). Você pode também 301-redirect onde o nome lesma é errado para SEO ideal.

Gostaria de usar um traço -. Como palavras Google separa como este para fins de SEO, ou mesmo um sublinhado _ como estes são ambos prefeito para facilitar a leitura

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top