Pergunta

Eu tenho um site que gera arquivos KML. Um URI como este: / Tokml? Gid = 2846

Gera um arquivo como este: Mt. Dana Summit Trail.kml

Usando Header('Content-Disposition: inline; filename="Mt. Dana Summit Trail.kml"'); em um script PHP e em execução no servidor http Apache.

Mas uma pesquisa no Google sobre filetype: kml não dará qualquer resultado do meu web site. Eu poderia armazenar em cache todos os arquivos KML e construir um URI como este: / kml / Mt. Dana Summit Trail.kml

Mas existem outras soluções?

Foi útil?

Solução

Da minha experiência, o Google geralmente URLs de índice com um identificador na cadeia de consulta muito bem - assim, parece estranho que nada aparece quando procurar filetype:kml. Seria bom se você pudesse postar um link para o site em questão, ou fornecer uma cópia completa dos cabeçalhos de resposta de um pedido de /tokml?gid=2846 -. Pode haver algum tipo de "bloqueador" escondido dentro desses cabeçalhos

A atribuição de um URL "real" (sem parâmetros de string de consulta) para cada documento é geralmente uma boa idéia, e você não deve precisar de cache de disco seu KML arquivos para alcançar este objectivo. Se a sua aplicação PHP está hospedado em Apache, você pode deixar mod_rewrite traduzir os URLs bonitas nas versões cadeia de consulta, incluindo este em um arquivo .htaccess para o aplicativo:

Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule ^kml/([^.]+)\.kml$ tokml?slug=$1 [NC]

Você pode querer adicionar um campo extra para o seu modelo de dados, para realizar uma "lesma url" para cada arquivo KML. O valor normalmente seria quase o mesmo que o nome do arquivo, mas tudo em minúsculas e sem quaisquer caracteres especiais - por exemplo. mt-dana-summit-trail. Ao usar este campo no URL em vez do nome real, os usuários e robôs vai evitar ver URLs cheios de, valores de caracteres codificados feias.

Sempre que você escrever um link para um arquivo KML, use o novo estilo URL:

<a href="/kml/mt-dana-summit-trail.kml">Mt. Dana Summit Trail</a>

No seu script tokml, recuperar então slug chave string de consulta, e usar isso - em vez de gid - quando se olha-se o objeto de dados relevantes. Observe como a regra de reescrita faz uma captura da lesma url e passa para o script como um bom parâmetro moda antiga cadeia de consulta.

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