我试图在000webhost的共享服务器中使用codeigniter。我上传了包装的内容,如果输入
http://groceriesapi.000webhostapp.com/API/index.php/welcome/
它确实有效。但是,如果我访问:
http://groceriesapi.000webhostapp.com/API/welcome/
您得到404。
我在互联网上读到,应该用.htaccess文件解决此问题。首先,我的文件夹结构中有两个。它是这样的:
public_htm
application
plenty of things
.htaccess
other stuff
.htaccess
我编辑外部.htacces,位于public_html的.htacces看起来像这样:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
现在,当访问简化的URL(http://groceriesapi.000webhostapp.com/API/welcome/)时,出现500内部服务器错误!
任何线索???
PS:我不在乎URL中间的index.php,但是每当收到错误消息时,整个codeigniter都会崩溃,我不知道出了什么问题..那是一个问题:(
最佳答案
步骤:-1 打开文件夹“application/config”并打开文件“config.php”。在config.php文件中找到并替换以下代码。
//find the below code
$config['index_page'] = "index.php"
//replace with the below code
$config['index_page'] = ""
步骤:-2 转到您的CodeIgniter文件夹并创建.htaccess
Path:
Your_website_folder/
application/
assets/
system/
.htaccess <——— this file
index.php
步骤:-3 在.htaccess文件中编写以下代码
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
步骤:-4 在某些情况下,uri_protocol的默认设置无法正常工作。要解决此问题,只需打开文件“application/config/config.php”,然后查找并替换以下代码
//find the below code
$config['uri_protocol'] = "AUTO"
//replace with the below code
$config['uri_protocol'] = "REQUEST_URI"
多数民众赞成在wamp服务器中,但它不起作用,因为默认情况下rewrite_module是禁用的,因此我们需要启用它。为此,请执行以下操作
Original Documentation
Example Link
PS:此答案是从CodeIgniter removing index.php from url到单词的逐字复制。仅在此处发布,因为必须将这个问题作为赏金的一部分予以回答
关于codeigniter-3 - 000webhost和codeigniter,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57114366/