我一直在 XAMPP 中使用 CodeIgniter。 重定向到函数 URL 没有问题(例如,function1):
http://localhost/function1
当我换成WAMP时,我遇到了问题。我无法重定向到 function1。但是,仍然可以通过以下位置访问 function1:
http://localhost/index.php/function1
如何配置WAMP和CodeIgniter来删除index.php? 为了让我可以在使用 XAMPP 运行时运行 function1。
谢谢你。
请尝试以下操作:
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。
创建一个
.htaccess
文件(如果您还没有)并在其中添加以下代码:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
确保将其放在与您的
index.php
相同的目录中。
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 服务器才能激活更改。
WAMP环境下Codeigniter中的url删除index.php只需三步。
与应用程序持有者并行创建 .htacess 文件,然后复制以下代码:
重写引擎开启 重写库/CodeIgniter/ RewriteCond %{REQUEST_URI} ^系统。* RewriteRule ^(.)$ /index.php/$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.)$index.php/$1 [L]
将应用程序文件夹中的 config.php 中的 $config['index_page'] 更改为空白,如下所示:
$config['index_page'] = '';
启用apache的“rewrite_module”。
重新启动你的 apache 就完成了。