【问题标题】:CodeIngiter redirect errorCodeIgniter 重定向错误
【发布时间】:2018-03-02 13:57:11
【问题描述】:

大家好,我一直在开发一个基于 codeigniter v3 的简单 php 后端。 我在 Cloud 9 ide 上开发了它,然后我将它迁移到了网站托管上。

我更改了数据库配置文件和

$config['base_url'] = 'codeigniterfolder/';

mydomain/codeingiter/.htacces

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

我的问题是关于默认控制器已加载属性,但是当我转到另一个控制器时,它显示文件未找到,但 codeigniter 没有错误,只是文件未找到而没有 404 错误.. 有谁能帮帮我吗?

【问题讨论】:

  • $config['base_url'] 是您网站的 URL,而不是您正在使用的文件夹。示例:$config['base_url'] = 'example.com';
  • 对不起,我在问题中写错了,我已设置为基本 URL mydomain/codeigniterfolder
  • 你有驼峰命名的文件吗?
  • 唯一的一个文件是一个名为 User 的控制器。 php
  • 但是当我在 c9 上运行它时它醒了

标签: php codeigniter controller routing


【解决方案1】:

你可以试试这个:

// server base url
$config['base_url'] = 'http://domian.com/';

// localhost base url
$config['base_url'] = 'http://localhost/project_floder_name/'; //


<IfModule mod_rewrite.c>

    RewriteEngine On
    RewriteBase /
    Options -Indexes

    RewriteCond %{REQUEST_URI} ^system.*

    RewriteRule ^(.*)$ /index.php?/$1 [L]

    RewriteCond %{REQUEST_URI} ^application.*

    RewriteRule ^(.*)$ /index.php?/$1 [L]

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule ^(.*)$ /index.php?/$1 [L]



</IfModule>



<IfModule !mod_rewrite.c>

    ErrorDocument 404 /index.php

</IfModule>

【讨论】:

    【解决方案2】:

    在 config/config.php 中

    我们可以做动态基础网址

    <?php 
    $config['base_url'] = '';
    $config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http");
    $config['base_url'] .= "://" . $_SERVER['HTTP_HOST'];
    $config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']), "", $_SERVER['SCRIPT_NAME']);
    ?>
    

    【讨论】:

      【解决方案3】:

      在配置文件中

      $config['base_url'] = '';
      $config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http");
      $config['base_url'] .= "://" . $_SERVER['HTTP_HOST'];
      $config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']), "", $_SERVER['SCRIPT_NAME']);
      

      在标题视图文件或通用视图中在标题下方添加基本标签并打印基本网址

      <title>Website Title</title>
      
      <base href="<?php echo base_url();?>">
      

      【讨论】:

        【解决方案4】:

        我今天遇到了同样的问题,这里是这个问题的解决方案:

        1. 在您的 vps 上转到 /etc/apache2/sites-available/000-default.conf; 服务器
        2. &lt;VirtualHost&gt;标签中添加以下代码。 我建议在最后添加

        <Directory /var/www/html>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Require all granted
        </Directory>

        现在就是这样,希望它会起作用 原因是您的服务器不允许读取您的代码的.htaccess

        【讨论】:

          【解决方案5】:

          只需更改您的.htaccess 文件最后一行。

          RewriteEngine On
          RewriteCond %{REQUEST_FILENAME} !-f
          RewriteCond %{REQUEST_FILENAME} !-d
          RewriteRule ^(.*)$ index.php?/$1 [L]
          

          【讨论】:

            猜你喜欢
            • 2013-05-05
            • 2016-09-16
            • 1970-01-01
            • 2018-05-09
            • 1970-01-01
            • 1970-01-01
            • 2013-03-24
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多