Codeigniter - 没有指定输入文件 - 为什么"?"解决了这个问题?

时间:2017-09-09 19:02:08

标签: php .htaccess codeigniter mod-rewrite

我遇到了消息no input file specified的问题。

我在stackoverflow的主题上发现了解决这一变化的问题

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

在index.php

之后添加了问号

它有效。

一切看起来像:

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

但为什么这样呢?在index.php实际做到并意味着什么之后,这个添加的问号是什么?为什么这一切都有效?

我正在寻找和搜索这样的所有主题的答案,我没有找到任何能回答我问题的答案。

我只发现它probably有效并且是必需的,因为index.php不在根目录1中,但我不确定。

我的目录如下:

/ (root folder)
--->application (app folder of framework)
--->myDomain.dx.am (my domain folder)
-------->index.php
-------->.htaccess (htaccess here)
-------->other_files
...................
--->system (system folder of framework)

我只寻求这个答案,我很好奇,我想知道为什么这样做以及如何工作?

1 个答案:

答案 0 :(得分:0)

请按照以下步骤操作:

  1. 转到application / config / config.php: 将$config['index_page'] = 'index.php';替换为$config['index_page'] = '';$config['uri_protocol'] = 'REQUEST_URI';$config['uri_protocol'] = 'AUTO';

  2. 启用重写模式  sudo a2enmod rewrite 然后 service apache2 restart

  3. 如果您愿意,可以使用以下.htaccess文件。

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