6

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

http://localhost/function1

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

http://localhost/index.php/function1

如何配置 WAMP 和 CodeIgniter 以删除 index.php?为了让我可以在使用 XAMPP运行时运行function1 。

谢谢你。

4

4 回答 4

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']为空白,config.php如下所示:

$config['index_page'] = '';

3) 启用rewrite_moduleapache 的“”。点击 WAMP 符号 -> Apache -> Apache 模块 -> rewrite_module

现在您可以在 url 中没有 index.php 的情况下访问您的网站。

于 2013-08-13T12:15:54.583 回答
2

.htaccess如果您还没有文件,请创建一个文件并在其中添加以下代码:

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

确保将其放在与index.php.

于 2013-08-13T12:12:22.690 回答
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.php 中将 $config['index_page'] 更改为空白,如下所示:

$config['index_page'] = '';

3) 启用 apache 的“rewrite_module”。

重新启动您的 apache 并完成。

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

于 2014-02-27T10:16:10.337 回答
2

在http://ellislab.com/codeigniter/user-guide/general/urls.html的 CodeIgniter 官方文档中建议的 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() 检查它是否已启用并检查 Loaded modules 列表。

如果您没有启用它,您可以使用 WAMPserver 管理器启用它(从任务栏访问它)转到 Apache>Apache 模块并检查“rewrite_module”

或者

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

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

于 2014-05-15T08:24:44.613 回答