请教一个.htaccess规则

要把www.abc.com/index.php/book/ 中的index.php隐藏掉,变成:
www.abc.com/book/
加载了mod_rewrite.so模块,AllowOverride None 改为AllowOverride All,URL_MODEL设置为

.htaccess如下:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>

问题是:现在www.abc.com/index.php/book/ 和www.abc.com/book/都可以正常访问,怎么才能让访问www.abc.com/index.php/book/的时候直接变成www.abc.com/book/

阅读 2.7k
2 个回答

以个人经验来看,很多MVC框架都支持配置URL模式为rewrite模式(即隐藏index.php)
如果不行的话,请在.htaccess中增加302规则

指定302跳转,保证所有的URL都去掉了index.php

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进