htaccess仅将index.html重定向到index.php

D3S*_*ems 3 php apache .htaccess mod-rewrite redirect

我有一个htaccess规则,它将index.html重定向到index.php

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

这很好 - 当我调用http://mydomainname.com/index.html时,它会将我重定向到http://mydomainname.com/index.php

但是我遇到了一个问题,当子文件夹中有一个名为index.html的文件时,我的htaccess规则将其带到index.php.

示例 - http://mydomainname.com/subfolder/index.htmlhttp://mydomainname.com/subfolder/index.php,这不应该发生在子文件夹中.

有解决方案吗

arc*_*444 9

对于你正在做的事情,这条规则可能有点过于复杂.

你只需要:

RewriteRule ^index.html$ /index.php [R,L]
Run Code Online (Sandbox Code Playgroud)

  • `[R]`:重定向,`[L]`:最后 - 不再处理任何规则虽然我有一种感觉`[R]`本身意味着`[L]`无论如何 (2认同)