Remove index.php from url in CodeIgniter 3

前端 未结 6 1569
死守一世寂寞
死守一世寂寞 2020-12-14 13:42

I am doing a project in CodeIgniter 3. I need to remove index.php from url. For that help me to get .htaccess file for CodeIgniter 3 and also where

相关标签:
6条回答
  • 2020-12-14 14:19
    place your htacces file in the root directory and use this following code
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]
    
    0 讨论(0)
  • 2020-12-14 14:24
    1. Create .htaccess file at root of the project

    .htaccess

    <IfModule mod_rewrite.c>
      RewriteEngine On
      # !IMPORTANT! Set your RewriteBase here and don't forget trailing and leading
      #  slashes.
      # If your page resides at
      #  http://www.example.com/mypage/test1
      # then use
      # RewriteBase /mypage/test1/
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)$ index.php?/$1 [L]
    </IfModule>
    
    <IfModule !mod_rewrite.c>
      # If we don't have mod_rewrite installed, all 404's
      # can be sent to index.php, and everything works as normal.
      # Submitted by: ElliotHaughin
        ErrorDocument 404 /index.php
    </IfModule>
    
    <IfModule mod_headers.c>
        Header set Access-Control-Allow-Origin: "*"
    </IfModule>
    

    2. Remove index.php at the root/application/config/config.php

    $config['index_page'] = '';
    

    3. If your server is new | your server rewrite mode was denied than Open Terminal Connect Your Server Via SSH Type Below Code

    sudo a2enmod rewrite
    sudo service apache2 restart
    sudo nano /etc/apache2/apache2.conf
    

    After that please check AllowOverride Is All or not

    <Directory “/var/www”>
      AllowOverride All
    </Directory>
    
    0 讨论(0)
  • 2020-12-14 14:28

    Update your htaccess file with the below code

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

    and in config file, please change base url with below code:-

    $root  = "http://".$_SERVER['HTTP_HOST'];
    $root .= str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']);
    $config['base_url']    = $root;
    
    0 讨论(0)
  • 2020-12-14 14:35

    In your config.php make following changes.

    $config['index_page'] = '';
    

    And add .htaccess file in main project directory with following content

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]  
    
    <Files "index.php">
    AcceptPathInfo On
    </Files>
    
    0 讨论(0)
  • 2020-12-14 14:38

    File: config.php

    $config['index_page'] = '';
    

    File: .htaccess

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

    RewriteEngine allows you to rewrite URL requests that come into your server and is based on a regular-expression parser.

    0 讨论(0)
  • 2020-12-14 14:40

    Well,

    Here what I did,

    I edited/create ".htaccess" to this

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

    and "app/config/config.php"

    $config['base_url'] = '';
    $config['uri_protocol'] = 'AUTO';
    

    and "app/libraries/Template.php"

    define("PATH", base_url()."index.php/");
    define("BASE", base_url());
    

    Cheers!

    0 讨论(0)
提交回复
热议问题