我正在使用.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。顺便说一句。
提供任何帮助。
答案 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重写 - 是
然后保存&检查
这可能非常有帮助!