CodeIgniter不会在服务器上正确显示网站

时间:2013-08-01 11:34:22

标签: php codeigniter .htaccess

我使用CodeIgniter框架在PHP中创建了一个站点。完成后,我编辑了routes.php文件并添加了.htaccess文件以从网址中删除/index.php/部分。

现在,当我尝试在localhost中打开它时,它运行正常,我可以访问http://localhost/mysite并获取我想要的着陆页。

但是,问题是当我尝试访问服务器上的站点时,我收到错误。因此,如果我打开类似http://mysite.com的内容,我会获得CodeIngniters的默认404页面。如果我指定了他们的URL,我可以打开所有其他页面,例如:http://mysite.com/about但是当其他人打开网站时,他会收到错误并且他不知道输入什么以便传递该错误。

我该怎么做才能解决这个问题?提前谢谢。

编辑:.htaccess

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

3 个答案:

答案 0 :(得分:0)

这个.htaccess代码总是对我有用,你可以试试这个:

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

答案 1 :(得分:0)

你的.htaccess确实引起了一些担忧,你试图将文件位置作为查询字符串传递,这可能在CodeIgniter中有效,但有更好的方法可以做到这一点。

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

另外,请确保在config.php中设置了以下选项:

$config['uri_protocol'] = 'REQUEST_URI';
祝你好运。

答案 2 :(得分:0)

此.htaccess代码正常工作

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

并在配置

$config['index_page'] = '';