Redirecionar e alias a mesma url usando mod_rewrite e apache2?

1

Basicamente, estou hospedando um site HTML estático e preciso:

  1. http://example.com/some-direcory/index.html
    para ser redirecionado para:% http://example.com/some-direcory

  2. Ainda tendo o arquivo físico representando o conteúdo armazenado em:% http://example.com/some-direcory/index.html

Veja o que eu tenho:

# rewrite /dir/file to /dir/file/index.html
RewriteRule ^([\w\/-]+)(\?.*)?$ $1/index.html$2 [L,T=application/x-httpd-html]

Isto parece funcionar bem para as minhas necessidades # 2 acima, e então eu tenho isso que atende às minhas necessidades de # 1:

# rewrite /dir/file/index.html to /dir/file
RewriteRule ^(.*)/index\.html$ /$1 [R=301,L,C]

No entanto, quando eu combino essas duas regras, obviamente elas criam um loop de redirecionamento. Existe alguma maneira de contornar isso?

    
por math0ne 01.08.2017 / 22:03

1 resposta

1

RewriteCond "%{THE_REQUEST}" "\s(/[\w/-]+?)/index\.html[?\s]"
RewriteRule "^" "%1" [R=301,L,C]

RewriteCond "%{DOCUMENT_ROOT}/$1/index.html" -f
RewriteRule "^([\w/-]+[^/])$" "/$1/index.html" [L,T=application/x-httpd-html]

Observe o DirectorySlash possível problema.

    
por 01.08.2017 / 23:59