2

I can't hide Codeigniter index.php on XAMPP 1.7.3

URL:

http://localhost/Servidor/agentesRainbow/index.php/agentes/tony

tony is an argument

My actual .htaccess:

   <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteBase /Servidor/agentesRainbow/

        #'system' can be replaced if you have renamed your system folder.
        RewriteCond %{REQUEST_URI} ^system.*
        RewriteRule ^(.*)$ /Servidor/agentesRainbow/index.php/$1 [L]

        #Checks to see if the user is attempting to access a valid file,
        #such as an image or css document, if this isn't true it sends the
        #request to index.php
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d

        #This last condition enables access to the images and css folders, and the robots.txt file
       RewriteCond $1 !^(index\.php|images|css|public|)
       RewriteRule ^(.*)$ /Servidor/agentesRainbow/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.
        ErrorDocument 404 /application/errors/404.php
    </IfModule>

My routes.php:

$route['agentes/(:any)'] = "agentes/index/$1";

$route['default_controller'] = "agentes";
$route['scaffolding_trigger'] = "";

My config.php:

$config['base_url'] = "http://localhost/Servidor/agentesRainbow/";
$config['index_page'] = "";
$config['uri_protocol'] = "AUTO";

On httpd.conf:

LoadModule rewrite_module modules/mod_rewrite.so

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

<Directory /Servidor/agentesRainbow/>
         Options FollowSymLinks
         AllowOverride All
         Order deny,allow
         Deny from all
</Directory>

3 Answers 3

7

Add this line to the REQUEST_FILENAME conditions:

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

Here is the updated .htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /Servidor/agentesRainbow/

    #'system' can be replaced if you have renamed your system folder.
    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ /Servidor/agentesRainbow/index.php/$1 [L]

    #Checks to see if the user is attempting to access a valid file,
    #such as an image or css document, if this isn't true it sends the
    #request to index.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /Servidor/agentesRainbow/index.php/$1 [L]

    #This last condition enables access to the images and css folders, and the robots.txt file
    RewriteCond $1 !^(index\.php|images|css|public)
    RewriteRule ^(.*)$ /Servidor/agentesRainbow/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.
    ErrorDocument 404 /application/errors/404.php
</IfModule>

Hope it solves your problem!

Sign up to request clarification or add additional context in comments.

Comments

2

I think the bar at the end of the rewrite condition is causing a problem. At least it broke the rewriting for me.

RewriteCond $1 !^(index\.php|images|css|public|)

Try removing the bar.

RewriteCond $1 !^(index\.php|images|css|public)

1 Comment

He doesn't even need that line as the two conditions above it will sort that.
0

base_url should be just "http://localhost";

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond $1 !^(index\.php|other|directories|you|want|accessible|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.