我一直在XAMPP中使用CodeIgniter。 重定向到功能URL没有问题(例如, function1 ):
http://localhost/function1
当我改为WAMP时,我遇到了问题。我无法重定向到 function1 。但是,仍然可以访问 function1 :
http://localhost/index.php/function1
如何配置WAMP和CodeIgniter来删除index.php? 为了在运行XAMPP时可以运行 function1 。
谢谢。
答案 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才能激活更改。