Regra mod_rewrite do Apache para passar REQUEST_URI específico para arquivos html específicos

2

Eu tenho uma apresentação html muito básica, que eu quero usar o mod_rewrite do Apache para lidar com as URLs.

home.html é apenas uma página de introdução, mas quero que isso seja chamado quando não houver REQUEST_URI

RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^ home.html

slides.html renderiza todos os slides. Estou usando o handlebars.js para extrair dados de um arquivo .json e renderizar cada slide de acordo com a estrutura de URL abaixo: /?q=N

RewriteCond %{REQUEST_URI} ^/\?q=\d+$
RewriteRule ^ slides.html

Ambos parecem funcionar bem, mas não quando ambos estão presentes. O que estou perdendo?

    
por atb 10.12.2014 / 19:19

1 resposta

0

Sua primeira regra de reescrita não precisa de RewriteCond e as duas regras precisam ser ordenadas corretamente.

Sua segunda regra (com slides.html) está funcionando por acidente. A string de consulta não faz parte de %{REQUEST_URI} . Você precisa de algo como o seguinte (não testado):

RewriteCond %{QUERY_STRING} ^q=\d+$
RewriteRule ^/$ slides.html [L]

RewriteRule ^/$ home.html [L]

Eu adicionei [L] sinalizadores para evitar mais reescritas, mas você pode removê-los se precisar fazer mais para o caminho do URI.

    
por 27.09.2016 / 13:37