如何从URL中间删除index.php

时间:2013-05-20 18:16:05

标签: .htaccess mod-rewrite redirect joomla2.5

我正在使用.htaccess重定向规则从URL中删除index.php,当我尝试访问mysite.com上的mysite.com/index.php重定向时,它运行良好。我在.htaccess中使用的重定向规则正是:

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

但是当我尝试访问ex的URL时。 mysite.com/index.php/folder/folder1它仍然有效。它不会从URL中间删除index.php。我的Google网站管理员工具向我展示了mysite.com/folder和mysite.com/index.php/folder的重复说明/关键字,这两个链接仍然可以使用。

任何htacces规则从URL中间删除index.php并在没有它的情况下重定向到URL?

使用Joomla 2.5.11。顺便说一句。

提供任何帮助。

2 个答案:

答案 0 :(得分:2)

RewriteRule ^index\.php / [R=301,L]
RewriteRule ^index\.php\/(.+) /$1 [R=301,L]
RewriteRule ^(.+)\/index\.php\/(.+) /$1/$2 [R=301,L]

你必须检查字符串的结尾,而不是开头。此外,如果您在子文件夹中有index.php,第三条规则将负责(假设您有必要的静默规则)。

注意:如果适合您,请仅使用R=301。否则,要进行测试,只需使用R

答案 1 :(得分:0)

首先将htaccess.txt重命名为.htaccess。

然后转到全局配置并设置使用URL重写 - 是

然后保存&检查

这可能非常有帮助!