Welcome Guest, Not a member yet? Register   Sign In
Remove index.php (mod_rewrite)
#1

On my ftp I have a subdomain: api.xxx.eu - here are all files from public CI4 folder.
My files structure:

Quote:- ci4
- public_html (root)
-- api (subdomain)

In api/index.php I updated:
PHP Code:
$pathsConfig FCPATH '../../ci4/app/Config/Paths.php'
I need remove index.php from url (I want to use mod_rewrite).

I have in ci4/app/Config/App:
PHP Code:
public $baseURL 'https://api.xxx.eu/'
public 
$indexPage ''


api/.htaccess:
PHP Code:
# Disable directory browsing
Options All -Indexes

# ----------------------------------------------------------------------
# Rewrite engine
# ----------------------------------------------------------------------

# Turning on the rewrite engine is necessary for the following rules and features.
# FollowSymLinks must be enabled for this to work.
<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On

    
# If you installed CodeIgniter in a subfolder, you will need to
    # change the following line to match the subfolder you need.
    # http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritebase
#    RewriteBase /

    # Redirect Trailing Slashes...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond 
%{REQUEST_URI} (.+)/$
    RewriteRule ^ %[L,R=301]

    # Rewrite "www.example.com -> example.com"
    RewriteCond %{HTTPS} !=on
    RewriteCond 
%{HTTP_HOST} ^www\.(.+)$ [NC]
    RewriteRule https://%1%{REQUEST_URI} [R=301,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 the front controller, index.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond 
%{REQUEST_FILENAME} !-d
    RewriteRule 
^([\s\S]*)$ index.php/$[L,NC,QSA]

    # Ensure Authorization header is passed along
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</
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 index.php
</IfModule>

# Disable server signature start
    ServerSignature Off
# Disable server signature end 


When I go to https://api.xxx.eu/index.php/home/index all works but when I remove index.php from url I get answer:
Quote:No input file specified.
Reply
#2

Try
Code:
RewriteRule ^([\s\S]*)$ index.php?/$1 [L,NC,QSA]
Reply
#3

(05-10-2022, 04:16 PM)kenjis Wrote: Try
Code:
RewriteRule ^([\s\S]*)$ index.php?/$1 [L,NC,QSA]

It works! Thank you  Heart
Reply
#4

If that doe's not fix your problem you can try this one.

Code:
# Remove index.php from URL
RewriteCond %{HTTP:X-Requested-With}    !^XMLHttpRequest$
RewriteCond %{THE_REQUEST}              ^[^/]*/index\.php [NC]
RewriteRule ^index\.php(.*)$            $1 [R=301,NS,L]

Let's us know how you make out on this.
What did you Try? What did you Get? What did you Expect?

Joined CodeIgniter Community 2009.  ( Skype: insitfx )
Reply




Theme © iAndrew 2016 - Forum software by © MyBB