我尝试删除Codeigniter中的索引页
我这样做的第一步 旧代码
$config['index_page'] = "index.php”
//新更新的代码(只需要删除索引.php (
$config['index_page'] = ""
然后对于第二步,我这样做 在 Codigniter 的根中创建文件 .htaccess,然后将此代码源放入
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
但这是同样的问题,我无法刷新网页
与索引页的URL工作:http://localhost:8089/codeigniter3/index.php/Hello/dispdata但是没有索引页就无法 http://localhost:8089/codeigniter3/Hello/dispdata
你好是控制器, 最后感谢帮助,:)
问题是,您将其安装在/codeigniter3/
这应该可以解决它:
// remove index.php
$config['index_page'] = ""
// Allow installation in a subfolder of your webroot
$config['uri_protocol'] = "REQUEST_URI"
并保留您的重写设置,它们没问题。
Codeigniter url 路由应该会来拯救你。参考: https://codeigniter.com/user_guide/general/routing.html
-
在主文件夹中创建一个名为 (.htaccess( 的新文件,并将此代码粘贴到 .htaccess 文件中。
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase /Enter your folder name/
-
删除用户对系统文件夹的访问权限。 此外,这将允许您创建一个系统.php控制器, 以前这是不可能的。 如果您已重命名系统文件夹,则可以更换系统。
RewriteCond %{REQUEST_URI} ^system.* RewriteRule ^(.*)$ /index.php?/$1 [L]
当应用程序文件夹不在系统文件夹中时 此代码段阻止用户访问应用程序文件夹
- 将
"应用程序"重命名为应用程序文件夹名称。
RewriteCond %{REQUEST_URI} ^application.* RewriteRule ^(.*)$ /index.php?/$1 [L]
检查到
Rewrite Cond %{ENV:REDIRECT_STATUS} ^$
Rewrite Cond %{REQUEST_FILENAME} !-f
Rewrite Cond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
错误文档 404/索引.php
试试这个
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
QSA
意味着,如果有一个查询字符串与原始 URL 一起传递,它将被附加到重写中
然后这样做
//remove index.php
$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI';
请按照以程操作:
- 在项目根文件夹中创建
.htaccess
文件 -
检查服务器上是否启用了mod_rewrite?
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L]`
这将解决您的问题。 如果您仍然遇到问题,请告诉我。
尝试此步骤:
- 从
$config['index_page'] = "index.php"
中删除索引.php -
在项目根文件夹中创建
.htaccess
,如以下代码RewriteEngine on RewriteBase /codeigniter3/ RewriteCond $1 !^(index.php|css|fonts|images|js) RewriteRule ^(.*)$ index.php?/$1 [L]
然后尝试
http://localhost:8089/codeigniter3/Hello/dispdata
我希望它能解决你的问题!
您可以在根文件夹的.htaccess
文件中尝试以下代码吗
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
RewriteRule ^(.*)$ index.php/$1 [L]
由于您在.htaccess
指令中将正确的 URL 路径作为附加路径名信息(path_info( 传递,因此请尝试在配置中显式设置它:
$config['uri_protocol'] = 'path_info';
除非显式设置,否则它将尝试各种方法,这些方法可能会失败,因为您现在已经从 URL 中删除了index.php
。