duanlijia5864 2017-05-09 21:57
浏览 104
已采纳

如何通过htaccess删除index.php [高级]

I am using codeigniter. There is always a way to remove index.php from url. The code is following for htaccess and it works fine.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L] 

But the PROBLEM is: we still can access the website with index.php like following URLS.

Both are accessible:

 http://www.yoursite.com/index.php/cat/subcat 
 http://www.yoursite.com/cat/subcat 

a forced removal of index.php is possible through htaccess? I actually dont want google to have both duplicate copies of same page. Any suggestion is welcomed

  • 写回答

1条回答 默认 最新

  • duandang9434 2017-05-09 22:11
    关注

    Try the following at the top of your .htaccess file:

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

    This checks that /index.php exists on the initial request (not just the rewritten request) and then redirects to the URL-path that follows if it is. By specifically checking against THE_REQUEST you avoid a redirect loop.

    The trailing slash is optional, so it will also catch requests for /index.php.

    Change the 302 (temporary) to 301 (permanent) when you are sure it's working OK.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥60 Python如何后台操作Vmwake虚拟机键鼠
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容