web-dev-qa-db-fra.com

301 redirection de "/index.html" vers la racine si index.html n'existe pas

Puis-je créer une redirection 301 de "index.html" vers le répertoire racine si le fichier "index.html" n'existe pas?

Par exemple: link "http://example.com/index.html" affiche la page "404 Error".

J'ai besoin d'une redirection 301 vers le répertoire racine: "http://example.com/"

dans .htaccess j'ajoute la règle:

Options +FollowSymLinks
RewriteCond %{THE_REQUEST} ^.*/index.html 
RewriteRule ^(.*)index.html$ http://example.com/$1 [R=301,L]

mais ça ne marche pas. Pouvez-vous m'aider à résoudre ce problème?

1
Andrij Muzychka

Utilisez-le comme ceci:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*?/|)index\.html$ / [L,R=301,NC]
1
anubhava

Si Request Nom de fichier se termine par index.html ET si index.html n'existe pas, il est alors redirigé vers http://example.com.

Essayez ci-dessous règle de réécriture:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} ^(.*)/index.html$
RewriteCond %{REQUEST_FILENAME} -s
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(.*)/index.html$ http://example.com/$1 [R=301,L,NC]

La règle ci-dessus fonctionne pour moi

0
Amit

Essayez de vérifier celui-ci:

Options +FollowSymlinks
RewriteEngine on

RewriteCond %{REQUEST_URI} ^/index.html$
RewriteCond %{REQUEST_URI} !-f
RewriteRule ^(.*) http://%{HTTP_Host}/ [R=301]

Je suis désolé, j'ai oublié quelque chose. C'est maintenant édité!


Essayez ce deuxième!

Options +FollowSymlinks
RewriteEngine on

RewriteCond %{REQUEST_URI} ^/index.html$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*) http://%{HTTP_Host}/ [R=301]
0
Servant