天道酬勤,学无止境

htaccess 将 index.html 重定向到 index.php 仅用于域根目录(htaccess redirect index.html to index.php for domain root only)

问题

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

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

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

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

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

有什么解决办法吗?

回答1

对于您正在做的事情,该规则可能有点过于复杂。

你只需要:

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

试试这个。 它在我的情况下工作。

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

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

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐