CodeIgniter重写URL:从url中删除index.php

时间:2012-06-22 06:55:11

标签: codeigniter-2

我的应用网址是

http://localhost/myapp/admin/index.php/projects

我希望将其重写为

http://localhost/myapp/admin/projects

我遵循了用户指南

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

为此但不适合我。

2 个答案:

答案 0 :(得分:0)

请按以下步骤操作:

1-如果您使用localhost,请在php.ini中启用mode_rewrite

2-在项目文件夹下创建.htaccess文件并粘贴(请将'project'更改为项目文件夹名称):

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /project/index.php/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
    ErrorDocument 404 /project/index.php
</IfModule>

3-在application / config.php上编辑此行:

$config['index_page'] = "";

答案 1 :(得分:0)

感谢/ * ActuallyMAB * /:您的代码确实有效。上面的代码适用于localhost(Windows上的WAMP服务器)。 如果您已将codeigniter项目放在某个文件夹中,例如目录结构如下:

C:\wamp\www\proposal

所以,你必须更换

RewriteRule ^(.*)$ /project/index.php/$1 [L]

RewriteRule ^(.*)$ /proposal{or your folder name}/index.php/$1 [L]

如果您的项目不是这种情况{您已将您的codeigniter直接放入www文件夹},那么请从上面的代码中删除文件夹名称;

RewriteRule ^(.*)$ /index.php/$1 [L]

也不要忘记改变

$config['index_page'] = 'index.php';

$config['index_page'] = '';

在配置文件夹{config.php}

我希望其他人也提供相同的答案,但由于上述代码适用于我的项目,我也想提供一些细节。