5
votes

I have a htaccess rule which redirects the index.html to index.php

  RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*index\.html\ HTTP/
  RewriteRule ^(.*)index\.html$ /$1index.php [R=301,L]

This works fine - when I call http://mydomainname.com/index.html , it redirects me to http://mydomainname.com/index.php

but I got one problem, when there is a file in subfolder named index.html then my htaccess rule takes that to index.php.

Example - http://mydomainname.com/subfolder/index.html to http://mydomainname.com/subfolder/index.php and this should not happen for subfolders.

Any solution?

2

2 Answers

12
votes

That rule is probably a bit over-complicated for what you're doing.

You only need:

RewriteRule ^index.html$ /index.php [R,L]
2
votes

Try this. It work's in my case.

RewriteEngine On
RewriteBase /
RewriteRule ^index\.html?$ / [NC,R,L]

Visit: https://css-tricks.com/how-to-redirect-indexhtml-to-indexphp/