如何在codeigniter中的linux服务器上使用.htaccess从url中删除index.php?

时间:2014-01-21 10:07:49

标签: .htaccess codeigniter

我的项目在本地工作成功但在我的服务器上没有工作我有一个在hostgator中托管的Linux服务器

默认控制器工作正常,但例如:

example.com/contact-us无效,它会重定向到服务器的404页面未找到页面,但example.com/index.php/contact-us正在运行

我的.htaccess代码是:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L] 

配置:

$config['base_url']     = 'http://linksture:2000/websitebusinessforsale.com/project';
$config['index_page']   = '';
$config['uri_protocol'] = 'REQUEST_URI';

我不知道问题是什么,请提前感谢您的回复

3 个答案:

答案 0 :(得分:0)

试试这个

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

答案 1 :(得分:0)

您拥有的代码很可能位于apache根目录下的文件夹中。如果是这种情况,则需要编写

/project/index.php/$0

因此,如果您已将所有代码上传到/ var / www / myproject,请使用

/myproject/index.php/$0

答案 2 :(得分:0)

我知道也许你找到了这个问题的解决方案, 问题出在Apache配置中。

首先,找到配置文件,(在我的例子中,我使用Linux Mint) 配置文件应位于/etc/apache2/sites-available/

继续编辑default.conf文件(取决于您的计算机,在我的计算机中,它名为000-default.conf) 使用此命令sudo gedit 000-default.conf

编辑文件

将此命令放在虚拟标记

之外
<Directory /var/www/html>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>

使用sudo service apache2 restart

保存并重新启动您的apache

因此,您必须在计算机上找到apache配置文件,然后执行相同的步骤。