Apache: serve todas as URLs em um domínio com a página de índice, sem reescrever o caminho?

1

Estou escrevendo um aplicativo Backbone.js que faz uso da API de histórico do HTML5. Gostaria que os usuários pudessem criar URLs do formulário:

domain.com/any
domain.com/random
domain.com/paththattheuserlikes

e ter todas essas URLs roteadas para minha página index.html , onde o roteador de backbone tomará o caminho e processará a solicitação adequadamente.

Minha pergunta é: como posso configurar o Apache para encaminhar todas as solicitações para esse domínio para index.html , mantendo o caminho no local para que o roteador de Backbone manipule a solicitação corretamente?

Eu sei como fazer um redirecionamento simples do Apache, mas estou preocupado em remover o caminho.

    
por Richard 26.01.2012 / 13:01

2 respostas

2

No seu arquivo de configuração do Apache, coloque as seguintes linhas:

RewriteEngine On
RewriteRule ^/[a-zA-Z0-9]+[/]?$ /index.html [QSA,L]

Isso reescreverá todas as solicitações compostas de caracteres alfanuméricos para index.html, preservando, ao mesmo tempo, a string de consulta e como sendo do mesmo caminho digitado. Assim, se o usuário acessasse yourdoma.in/someoldpath, index.html seria exibido, mas a barra de endereços ainda diria yourdoma.in/someoldpath.

Como mencionado pelo primeiro pôster, se você quiser saber qual caminho foi digitado, altere a segunda linha acima para isso:

RewriteRule ^/([a-zA-Z0-9]+)[/]?$ /index.html?pathtyped=$1 [QSA,L]

Qual seria o caminho original digitado para index.html na variável de solicitação "pathtyped".

    
por 26.01.2012 / 14:36
1

Se você não quiser perder os caminhos originais, precisará incluí-los (ou uma substituição) na string de consulta da página de destino para poder obtê-los e processá-los.

    
por 26.01.2012 / 13:12