【问题标题】:codeigniter 404 page not found in intranet deployment在 Intranet 部署中找不到 codeigniter 404 页面
【发布时间】:2014-07-16 02:42:51
【问题描述】:

请指导我这是什么问题?我的所有页面都显示在内网部署中找不到 404,而主(主页)页面显示正常。

.htaccess

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

routes.php

$route['default_controller'] = "home";
$route['404_override'] = 'error/index';
$route['pages/(:any)']="pages/view/$1";
$route['contact-us'] = 'contact_us/index';
$route['news'] = 'news/index';

我将不胜感激任何帮助或指导。

【问题讨论】:

  • RewriteBase 会改变吗? .htaccess 中的/dna/ 可能是问题所在吗?在您的配置中为 URI 协议 尝试不同的值也可能会有所帮助。
  • 尝试将RewriteRule ^(.*)$ /dna/index.php/$1 [L]更改为RewriteRule ^(.*)$ /index.php/$1 [L],您已经在RewriteBase /dna/中设置了/dna/。除非您希望它指向 http:///dna/dna/home
  • 还是不行! "在此服务器上找不到请求的 URL /dna/pages/home。"
  • 您用于开发和直播的 URL 是什么?

标签: .htaccess codeigniter codeigniter-2 codeigniter-url codeigniter-routing


【解决方案1】:

CodeIgniter 存在子文件夹问题。

创建新的虚拟主机,如dna.example.com

.htaccessbase_url 设置中删除dna/

【讨论】:

    【解决方案2】:
    RewriteEngine On
    RewriteBase /dna/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L,QSA]
    

    假设您在配置中设置了正确的$config['base_url'],以上将起作用

    $config['base_url'] = "http://localhost/DNA/" 或类似名称,具体取决于您的设置。

    【讨论】:

      【解决方案3】:

      Codeigniter 会自动为您的站点获取 $config['base_url'],因此您可以将其留空 确保您启用了 mod_rewrite。 然后用这个修改你的 .htaccess:

      <IfModule mod_rewrite.c>
      
        RewriteEngine On
        RewriteBase /
        RewriteCond %{REQUEST_URI} ^site_hostname.*
        RewriteRule ^(.*)$ /index.php?/$1 [L]
      </IfModule> 
      

      希望能解决。

      【讨论】:

        猜你喜欢
        • 2020-07-14
        • 2019-12-02
        • 1970-01-01
        • 2021-04-22
        • 2016-02-21
        • 2016-11-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多