000webhost和codeigniter

时间:2019-07-19 14:15:32

标签: codeigniter-3 web-hosting

我正在尝试在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的一个),如下所示:

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都会崩溃,而且我不知道出了什么问题..那就是一个问题:( < / p>

1 个答案:

答案 0 :(得分:1)

步骤:-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处于禁用状态,因此我们需要启用它。为此,请执行以下操作

  1. 左键单击WAMP图标
  2. Apache
  3. Apache模块
  4. 左键单击rewrite_module

Original Documentation

Example Link

PS:此答案是CodeIgniter removing index.php from url的逐字复制。仅在此处发布,因为必须悬赏才能回答问题