【问题标题】:Codeigniter 404 page not found, how to setup找不到 Codeigniter 404 页面,如何设置
【发布时间】:2019-12-04 17:01:46
【问题描述】:

我已经在服务器上上传了我的codeigniter项目,但是除了索引页面之外其他页面没有加载,只给出404页面未找到错误。

我已经正确设置了所有配置并创建了文件,但这个错误仍然让我感到沮丧。

.htaccess 文件 --

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
</IfModule>

config.php --

$config['base_url'] = 'http://www.doupnow.com/';
$config['index_page'] = '';

routes.php --

$route['default_controller'] = 'home';
$route['home'] = 'home/index';
$route['faq'] = 'home/faq';
$route['privacy-policy'] = 'home/policy';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

我的控制器—— 主页.php

    public function index()
{
    $result['data']=$this->Home_Model->video_url();
    $result['list']=$this->Home_Model->video_list();
    $result['list2']=$this->Home_Model->funny_video();
    $result['list3']=$this->Home_Model->funny_audio();
    $this->load->view('header');
    $this->load->view('home_page', $result);
    $this->load->view('footer');
}

public function faq()
{
    $this->load->view('header');
    $this->load->view('help');
    $this->load->view('footer');
}

public function policy()
{
    $this->load->view('header');
    $this->load->view('privacy_policy');
    $this->load->view('footer');
}

我的模态--

Home_Model.php

我的观点--

home_page.php
help.php
privacy_policy.php
header.php
footer.php

现在当我浏览 www.doupnow.com 时,它会进入索引页面。但是当我单击常见问题解答或政策链接 [http://doupnow.com/faq],它显示 404 页面未找到错误。请协助。

【问题讨论】:

    标签: codeigniter


    【解决方案1】:

    检查您的网址是否正常工作 http://www.doupnow.com/index.php/home/faq 如果它工作那么 用这个替换你的 .htaccess 代码

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . index.php [L]
    </IfModule>
    

    之后它应该可以工作了!

    我检查了这个 url http://doupnow.com/index.php/home/faq 它的工作。你给的链接[http://doupnow.com/faq]它错了,链接应该是base_url/controller/method在你的情况下

    http://doupnow.com/ = 'base_url

    home = controller

    faq = method

    final url = 'http://doupnow.com/home/faq

    【讨论】:

    • 更改了 .htaccess 文件。但它不起作用。我的 routes.php 文件是否正确?
    • 您的 .htaccess 文件位置是什么?它应该在public_html/doupnow.com/.htaccess
    • doupnow.com/index.php/home/faq 正确打开,但是当我点击常见问题超链接时,它会将我带到 doupnow.com/faq 并出现 404 错误,如果我将网址更改为 doupnow.com/home/faq那么404也来了
    • public_html/doupnow.com/.ht 仅在此处访问它
    • &lt;li&gt;&lt;a href="&lt;?= base_url() ?&gt;faq"&gt;FAQ&lt;/a&gt;&lt;/li&gt;
    【解决方案2】:

    天啊,一切都是正确的。在服务器端只需进行 1 项设置。 由于我的 Web 服务器是 cent os,所以我刚刚将 httpd conf 文件中的 AllowOverride 选项从 None 更新为 All。现在一切正常。

    感谢你们的支持。

    【讨论】:

      【解决方案3】:

      您应该将每个Hrefhref="YOUR-METHOD-NAME" 更改为href="&lt;?php echo base_url('YOUR-METHOD-NAME');"href="&lt;?php echo base_url();YOUR-METHOD-NAME"

      【讨论】:

      • 然后试试href="&lt;?php echo base_url(); ?&gt;YOUR-CONTROLLER / YOUR-METHOD-NAME"
      • 它转到“doupnow.com/home/faq”并显示错误消息“在此服务器上找不到请求的 URL /home/faq。”
      • 那么很遗憾,.htaccess 有问题,这是我无法提供帮助的领域。
      【解决方案4】:

      您需要正确编写您的 URL,因为您的服务器在没有 index.php 的情况下无法工作,rewrite_module 未打开。 使用 site_url() 函数编写您的网址。 例如:

      site_url('faq');
      

      【讨论】:

      • 根据您的建议进行更改后,单击超链接会导致“doupnow.com/faq”页面显示 404 not found 错误
      猜你喜欢
      • 2020-07-14
      • 2019-12-02
      • 1970-01-01
      • 1970-01-01
      • 2016-11-14
      • 1970-01-01
      • 1970-01-01
      • 2013-02-28
      相关资源
      最近更新 更多