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.

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

报告相同问题?

悬赏问题

  • ¥15 有偿求码,CNN+LSTM实现单通道脑电信号EEG的睡眠分期评估
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路