如何在Wamp中删除index.php?

时间:2013-08-13 12:10:18

标签: codeigniter wamp

我一直在XAMPP中使用CodeIgniter。 重定向到功能URL没有问题(例如, function1 ):

http://localhost/function1

当我改为WAMP时,我遇到了问题。我无法重定向到 function1 。但是,仍然可以访问 function1

http://localhost/index.php/function1

如何配置WAMP和CodeIgniter来删除index.php? 为了在运行XAMPP时可以运行 function1

谢谢。

4 个答案:

答案 0 :(得分:10)

请尝试以下方法:

1)与应用程序文件夹并行创建.htaccess文件,只需复制粘贴以下代码:

RewriteEngine On
RewriteBase /CodeIgniter/
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

2)将应用程序文件夹中$config['index_page']的{​​{1}}更改为空白,如下所示:

config.php

3)启用apache的“$config['index_page'] = ''; ”。点击WAMP符号 - > Apache - > Apache模块 - > rewrite_module

现在,您可以在网址中访问没有index.php的网站。

答案 1 :(得分:2)

创建.htaccess文件(如果您还没有)并在其中添加此代码:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

确保将其放在与index.php相同的目录中。

答案 2 :(得分:2)

在WAMP环境中,只需要三个步骤就可以从Codeigniter中的url中删除index.php。

1)与应用程序持有者并行创建.htacess文件,只需复制以下代码:

RewriteEngine On
RewriteBase /CodeIgniter/
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

2)将$ config ['index_page']更改为应用程序文件夹中config.php中的空白,如下所示:

$config['index_page'] = '';

3)启用apache的“rewrite_module”。

重启你的apache并完成它。

详细信息:http://sforsuresh.in/removing-index-php-from-url-of-codeigniter-in-wamp/

答案 3 :(得分:2)

CodeIgniter在http://ellislab.com/codeigniter/user-guide/general/urls.html的官方文档中建议的mod_rewrite规则

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

在WAMP上完美地为我工作

这也有效:

<IfModule mod_rewrite.c>

    Options +FollowSymLinks
    RewriteEngine on

    # Send request via index.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

在这两种变体中,唯一的区别是条件。基本上,重要的是重写规则。条件可能取决于您的要求。

这些都不适合我早些时候在WAMP上工作。但是,问题出在Apache设置中。 rewrite_module未启用。所以,请检查是否已启用。您可以使用phpinfo()检查它是否已启用,并检查已加载的模块列表。

如果未启用它,可以使用WAMPserver管理器启用它(从任务栏访问它)转到Apache&gt; Apache Modules并检查'rewrite_module'

OR

打开httpd.conf并检查LoadModule rewrite_module modules/mod_rewrite.so是否已取消注释。

您必须重新启动WAMPserver才能激活更改。