如何删除Wamp中的index.php?

问题描述 投票:0回答:4

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

http://localhost/function1

当我换成WAMP时,我遇到了问题。我无法重定向到 function1。但是,仍然可以通过以下位置访问 function1

http://localhost/index.php/function1

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

谢谢你。

codeigniter wamp
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) 启用apache的“

rewrite_module
”。单击 WAMP 符号 -> Apache -> Apache 模块 -> rewrite_module

现在您可以访问您的网站,而无需在网址中添加index.php。


2
投票

创建一个

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

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

确保将其放在与您的

index.php
相同的目录中。


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>Apache 模块并检查“rewrite_module”

打开 httpd.conf 并检查

LoadModule rewrite_module modules/mod_rewrite.so
是否未注释。

您必须重新启动 WAMP 服务器才能激活更改。


2
投票

WAMP环境下Codeigniter中的url删除index.php只需三步。

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

    重写引擎开启 重写库/CodeIgniter/ RewriteCond %{REQUEST_URI} ^系统。* 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 就完成了。

© www.soinside.com 2019 - 2024. All rights reserved.