htaccessredirectindex.php到根(包括子域名)

我试图将index.php文件redirect到根目录,我search了几个代码片段,类似于:

RewriteCond %{THE_REQUEST} ^.*/index.php RewriteRule ^(.*)index.php$ http://www.domain.com/$1 [R=301,L] 

但是这不适用于子域名,例如下面的例子:

  1. 我有一个子域名:subdomain.domain.com
  2. 用户访问http://subdomain.domain.com/index.php
  3. 使用上面的htaccess他们redirect到http://www.domain.com/而不是http://subdomain.domain.com/

有谁知道如何调整上面的htaccess,所以它会考虑到子域,并将其redirect到适当的位置?

例如,如果用户访问http://subdomain.domain.com/index.php他们将去http://subdomain.domain.com/

奖励积分:

有没有一个htaccess可以将这个规则应用到所有文件夹?

所以对于任何与index.php文件夹,他们将被redirect到它的根目录,例如http://subdomain.domain.com/folder1/folder2/index.php会自动去http://subdomain.domain.com/folder1 /文件夹2 /

Solutions Collecting From Web of "htaccessredirectindex.php到根(包括子域名)"

做这个:

 RewriteCond %{THE_REQUEST} ^.*/index\.php RewriteRule ^(.*)index.php$ /$1 [R=301,L] 

我在@ ThinkingMonkey的答案基础上的以下代码

 RewriteRule ^(.*)index\.(php|html?)$ /$1 [R=301,NC,L] 

它将以index.phpindex.htmindex.html结尾的URI重定向到/ 。 也适用于子目录。

另外,请注意NC标志。 这使得它不区分大小写。 所以即使URI是大写的,比如INDEX.PHP也可以

 RewriteCond %{THE_REQUEST} ^.*/index\.(php|html?) [NC] RewriteRule ^(.*)index.(php|html?)$ /$1 [R=301,NC,L] 

我的版本基于ThinkingMonkey和caiosm1005答案:)

可以使用这个

 RewriteRule ^index\.php/(.*)$ http://www.example.com/$1 [R=301,L]