烦人的“没有输入文件选择”Codeigniter(htaccess)

时间:2011-08-23 10:20:31

标签: .htaccess codeigniter

我在这里看到了关于这个问题的类似问题,但由于它没有解决我的问题,我必须写另一个。

我已将客户的网站从我自己的测试服务器移动到之前购买的网站主机lcn.com。虽然主页http://mydomain.com加载绝对正常,但任何子页面(http://mydomain.com/page)都会向我显示“未选择输入文件”错误。

它必须是htaccess / server设置问题,虽然lcn告诉我mod重写全部开启,但没有任何限制。如果我以简单的方式http://mydomain.com/index.php/page访问子页面,它们会很好地加载。

所以,这里是,这是我的htaccess文件。有没有想过为什么我有问题?

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|images|robots\.txt|css)
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>

ErrorDocument 404 /index.php
</IfModule>

1 个答案:

答案 0 :(得分:0)

这是原始论坛(CI论坛)中的一千次问题。虽然上面的htaccess通常可以从你的url中删除index.php,但你需要检查/尝试几个额外的配置。

  1. 你的htaccess。

    # RewriteRule ^(.*)$ index.php/$1 [L]
    # While above rule seems fine in general environment, sometime i need to modify that into
    RewriteRule ^.*$ index.php/$1 [L]
    
  2. 您的config.php

    // $config['uri_protocol']  = 'AUTO';
    // In some environment, you need to change it
    // $config['uri_protocol']  = 'PATH_INFO';
    // or..
    $config['uri_protocol'] = 'REQUEST_URI';