发布网友 发布时间:2022-04-06 00:26
共1个回答
热心网友 时间:2022-04-06 01:55
默认情况下,index/index.php/news/article/my_article 你可以很容易的通过 .htaccess 文件来设置一些简单的规则删除它。下面是一个例子,使用“negative”方法将非指定内容进行重定向: RewriteEngine on RewriteCond $1 !^(index\.phpimagesrobots\.txt) RewriteRule ^(.*)$ /index.php/$1 [L] 注意:如果你的项目不在根目录请把上面这一句改为:RewriteRule ^(.*)$ index.php/$1 [L] 在上面的例子中,可以实现任何非 index.php、images 和 robots.txt 的 HTTP 请求都被指向 index.php。我的终极解决方案但在实践中,以上方案仅适用于与运行于Apache环境下的服务器且并不具有充分的普遍适用性!当CI程序位于非根目录或位于某些虚拟主机上时,以上解决方案会引起”404错误”或”no input file specified”等错误.百度参考过相关问题的方案后,找到了一种具有通用性的有效删除URL路径中index.php的方法,代码参考如下:index位于根目录时,你可以在index.php所在的根目录里新建.htaccess文件并使用以下代码:RewriteEngine onRewriteCond $1 !^(index\.phprobots\.txt)RewriteRule ^(.*)$ /index.php?/$1 [L]当index.php不在根目录时,你可以在index.php所在目录里新建.htaccess文件并使用以下代码:RewriteEngine onRewriteCond $1 !^(index\.phpimagesrobots\.txtl)RewriteRule ^(.*)$ /path_to_app/index.php?/$1 [L]注意把path_to_app换成你的index.php所在文件的目录.假设你的index.php放在根目录的tool子文件夹下,你可以这样写:RewriteEngine onRewriteCond $1 !^(index\.phpimagesrobots\.txtl)RewriteRule ^(.*)$ /tool/index.php?/$1 [L]以上方案应该可以解决Apache环境下如何有效删除URL中index.php的问题,