收藏本站 Archiver
    请 后使用快捷导航
    没有账号?入住 CI 中国社区
    查看: 176435|回复: 127

    去掉 URL 中的 index.php

    [复制链接]
    楼主
    发表于 2007年10月15日 13:27:36 | 只看该作者 回帖奖励 |倒序浏览 |
    首先,你要清楚自己的 Web 服务器是 Apache,支持 mod_rewrite,并且已经配置好 rewrite 相关的参数。
    什么是 rewrtie 可以 Google 一下。

    然后,在 CI 根目录下新建立一个配置文件,命名为: .htaccess
    在里面这样写:
    1. RewriteEngine on
    2. RewriteCond 1ドル !^(index\.php|images|robots\.txt)
    3. RewriteRule ^(.*)$ /index.php/1ドル [L]
    复制代码
    就可以去掉 index.php 了。要注意 /index.php/1ドル 要根据你目录(Web 目录,比如 http://www.domain.com/index.php)的实际情况来定,比如网站根目录是 /ci/index.php 则要写成 /ci/index.php/1ドル
    1. RewriteCond 1ドル !^(index\.php|images|robots\.txt)
    复制代码

    上面的代码意思是排除某些目录或文件,使得这些目录不会 rewrite 到 index.php 上,这一般用在图片、js、css 等外部资源上。也就是说非 PHP 代码都要排除出去。(这里我排除了 images 目录和 robots.txt 文件,当然 index.php 也应该被排除)
    哦,对了,还要修改 config.php 这个文件中的下列内容:
    PHP复制代码
    /*
    |--------------------------------------------------------------------------
    | Index File
    |--------------------------------------------------------------------------
    |
    | Typically this will be your index.php file, unless you've renamed it to
    | something else. If you are using mod_rewrite to remove the page set this
    | variable so that it is blank.
    |
    */

    $config['index_page'] = "index.php";
    复制代码

    把其中的 "index.php" 改成 "" 就可以了。
    推荐
    发表于 2017年9月13日 16:27:49 | 只看该作者
    Hex 发表于 2008年2月15日 13:59
    是的,但也需要根据你的目录情况进行修改!
    具体你应该看看 apache rewrite 的相关手册!这是 apache 的问 ...

    大神 我想问一下 为什么我的
    RewriteEngine on
    RewriteCond 1ドル !^(index.php|images|robots.txt)
    RewriteRule ^(.*)$ /index.php/1ドル [L]
    这么写就不行会显示 没有文件
    把第三行 改成 RewriteRule ^(.*)$ /index.php?/1ドル [L]
    就可以了 想请教一下 是什么原因
    推荐
    发表于 2015年12月16日 11:41:56 | 只看该作者
    我在nginx 下既隐藏了 url地址中的index.php 同时又能引入 静态资源 css.js等文件。具体配置是
    rewrite .*/(statics|uploads)/(.*)$ /1ドル/2ドル last;
    rewrite /.* /index.php break;
    将css,js等文件放到 statics目录下,并且statics目录和system,application目录是同级别的目录
    推荐
    发表于 2017年9月15日 09:06:26 | 只看该作者
    这个是,我用的,根目录下的,.htaccess文件:

    1. # BEGIN CodeIgniter
    2. <IfModule mod_rewrite.c>
    3. RewriteEngine On
    4. RewriteBase /
    5. RewriteRule ^index\.php$ - [L]
    6. RewriteCond %{REQUEST_FILENAME} !-f
    7. RewriteCond %{REQUEST_FILENAME} !-d
    8. RewriteRule . /index.php [L]
    9. </IfModule>

    10. # END CodeIgniter
    复制代码
    沙发
    发表于 2007年11月7日 15:00:54 | 只看该作者
    我用的
    1. <IfModule mod_rewrite.c>
    2. RewriteEngine On
    3. RewriteBase /my_dir/
    4. RewriteCond %{REQUEST_FILENAME} !-f
    5. RewriteCond %{REQUEST_FILENAME} !-d
    6. RewriteRule ^(.*)$ index.php/1ドル [L]
    7. </IfModule>

    8. <IfModule !mod_rewrite.c>
    9. ErrorDocument 404 /index.php
    10. </IfModule>
    复制代码
    藤椅
    楼主| 发表于 2007年11月7日 17:17:02 | 只看该作者
    感谢楼上提供自己的设置!
    板凳
    楼主| 发表于 2008年1月3日 16:51:25 | 只看该作者
    我修改了一下,顶上去。。。
    报纸
    发表于 2008年1月15日 20:19:10 | 只看该作者
    补充一些我遇到的问题:
    <Directory "D:/usr/local/www">
    AllowOverride all
    Options +FollowSymLinks +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
    </Directory>
    Options参数设置如上,好像不开,无法使用rewrite功能
    心得:APACHE的LOGS一定要多看
    地板
    发表于 2008年2月15日 13:50:31 | 只看该作者
    RewriteEngine on
    RewriteCond 1ドル !^(index.php|images|robots.txt)
    RewriteRule ^(.*)$ /index.php/1ドル [L]

    .htaccess这个文件中的代码就是以上三行么?
    7
    楼主| 发表于 2008年2月15日 13:59:32 | 只看该作者
    是的,但也需要根据你的目录情况进行修改!
    具体你应该看看 apache rewrite 的相关手册!这是 apache 的问题,和 CI 没什么关系,呵呵〜
    8
    发表于 2008年2月15日 14:03:17 | 只看该作者
    谢谢楼上的回答,我使用的不是APACHE而是IIS,也是如上设置么?
    9
    楼主| 发表于 2008年2月15日 14:32:24 | 只看该作者
    IIS 就不是这样了〜〜
    有另外的 url rewrite 方法〜〜
    不过,劝你还是用 apache。

    PS: 不一定非要去掉 index.php 吧?带着没有什么不好,顶多就是不好看而已。
    10
    发表于 2008年3月29日 16:27:22 | 只看该作者
    哈哈。。对。。带着就与众不同了。。
    下一页 »
    12 3 4 5 6 7 8 9 10 ... 13 下一页
    返回列表
    您需要登录后才可以回帖 登录 | 入住 CI 中国社区

    本版积分规则

    AltStyle によって変換されたページ (->オリジナル) /