1 votes

Redirection et alias de la même url en utilisant mod_rewrite et apache2 ?

En fait, j'héberge un site HTML statique et j'ai besoin de.. :

  1. http://example.com/some-direcory/index.html
    pour être redirigé vers :
    http://example.com/some-direcory

  2. Tout en conservant le fichier physique représentant ce contenu stocké sur le site :
    http://example.com/some-direcory/index.html

Voici ce que j'ai :

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

Cela semble bien fonctionner pour mes besoins #2 ci-dessus, et puis j'ai ceci qui répond à mes besoins #1 :

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

Cependant, lorsque je combine ces deux règles, il est évident qu'elles créent une boucle de redirection. Existe-t-il un moyen de contourner ce problème ?

1voto

Deadooshka Points 111
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]

Notez que les DirectorySlash problème éventuel.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X