Codeigniter链接在url中没有index.php时不起作用

时间:2017-01-01 06:16:44

标签: php codeigniter

我开发了一个Web应用程序,其中我使用了codeigniter,我的Web应用程序的所有URL的结构如下:

<?php echo base_url();?>/Admin/Promotions

这种类型的链接在我的 Localhost 中运行良好但在我的托管服务器上无效(我使用Godaddy托管

但是一些在URL中有index.php的链接在localhost和server上都工作,这个链接之王的结构也是

<?php echo base_url();?>index.php/Admin/Pramotions

我做了什么,以便没有index.php的网址效果很好?

我的HTACCESS:

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

4 个答案:

答案 0 :(得分:2)

使用此 htaccess -

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

然后设置 base_url -

$config['base_url']='http://www.domain_name.com';

然后删除配置文件中的index.php -

$config['index_page'] = '';

之后它将在没有index.php的情况下工作

答案 1 :(得分:1)

打开config.php并执行以下替换

$config['index_page'] = "index.php"

$config['index_page'] = ""

只需替换

$config['uri_protocol'] ="AUTO"

$config['uri_protocol'] = "REQUEST_URI"

AND IN HTACCESS FILE下面的代码

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

答案 2 :(得分:1)

如果上述答案都不起作用,也许您需要在httpd.conf中激活mod_rewrite:

在终端上:

sudo nano /etc/httpd/conf/httpd.conf

ctrl + w查找“重写”

取消注释这一行:

LoadModule rewrite_module modules/mod_rewrite.so

保存并重新启动httpd(apache)。

答案 3 :(得分:0)

这对我有用...... .htaccess文件是这样的......

    RewriteCond %{HTTPS} !=on
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

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

别忘了设置

$config['base_url']='http://www.domain_name.com';