Welcome Guest, Not a member yet? Register   Sign In
.htaccess on subdomain
#1

(This post was last modified: 02-19-2024, 06:11 AM by pippuccio76.)

hi hi have a site in subdomain :

https://subdomain.domain.eu
All file in public folder are insert into public_html
All other folder are inserted in a folder named codeigniter on same level of public_html.
fc path is set correctly : require FCPATH . '/../codeigniter/app/Config/Paths.php';
The site load correctly until login and redirect on index correctly but when i try to access

https://subdomain.domain.eu/controller/method
It redirect to https://subdomain.domain.eu/index.php always

this is my htaccess:
Code:
# Disable directory browsing
Options -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 ^ %1 [L,R=301]

# Rewrite "www.example.com -> example.com"
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%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?/$1 [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
in codeigniter folder i put another .htaccess:

Code:
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteRule ^(.*)$ public_html/$1 [L]
</IfModule>
How can i solve ?
Reply
#2

Un-remark RewriteBase / in your .htaccess file just like it is.

That's the only change I made to my .htaccess file, mine is also publiic_html.

If you change paths you also need to edit spark and chage public to public_html
or it will not find it.

Check your Routes also.

PHP Code:
php spark routes 
What did you Try? What did you Get? What did you Expect?

Joined CodeIgniter Community 2009.  ( Skype: insitfx )
Reply
#3

(02-19-2024, 10:45 AM)InsiteFX Wrote: Un-remark RewriteBase / in your .htaccess file just like it is.

That's the only change I made to my .htaccess file, mine is also publiic_html.

If you change paths you also need to edit spark and chage public to public_html
or it will not find it.

Check your Routes also.

PHP Code:
php spark routes 


Spark doesn't work only on local host ? My host it's a shared hosting...

I uncommented  the RewriteBase / , this is my code now :

Code:
# Disable directory browsing
Options -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 ^ %1 [L,R=301]

# Rewrite "www.example.com -> example.com"
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%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?/$1 [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

but doesn't work....


Shouldn't this line be changed? :
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
isn't for domain only ?
Reply
#4

Try adding this.

Code:
RewriteBase /subdomain.domain.eu/
What did you Try? What did you Get? What did you Expect?

Joined CodeIgniter Community 2009.  ( Skype: insitfx )
Reply
#5

(This post was last modified: 02-20-2024, 05:07 AM by pippuccio76.)

(02-19-2024, 10:53 PM)InsiteFX Wrote: Try adding this.

Code:
RewriteBase /subdomain.domain.eu/

with https:// or without ? must i remove RewriteBase / or leave?

Now my code is :

Code:
# Disable directory browsing
Options -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 /
# change subdomain and domain with true data
RewriteBase /subdomain.domain.eu/   

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

# Rewrite "www.example.com -> example.com"
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%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?/$1 [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

Now if i do /subdomain.domain.eu/user/index i have a 404 error .if i try to insert index.php as   /subdomain.domain.eu/index.php/user/index it rewrite to /subdomain.domain.eu/index.php
Reply
#6

You can try checking these out, but it looks like it may be a server problem.

PHP Code:
// app/Config/App.php

$allowedHostnames = [];          // try adding the site here.

$uriProtocol 'REQUEST_URI';    // try different settings here see the file. 
What did you Try? What did you Get? What did you Expect?

Joined CodeIgniter Community 2009.  ( Skype: insitfx )
Reply
#7

(02-20-2024, 05:35 AM)InsiteFX Wrote: You can try checking these out, but it looks like it may be a server problem.

PHP Code:
// app/Config/App.php

$allowedHostnames = [];          // try adding the site here.

$uriProtocol 'REQUEST_URI';    // try different settings here see the file. 

Doesn't work , the server is a shared hosting with softacolus that ca install laravel Too , i don't think i cannot install codeigniter ...
Reply
#8

The first .htaccess seems to be correct.

Quote:https://subdomain.domain.eu/controller/method
It redirect to https://subdomain.domain.eu/index.php always

What is redirecting you to index.php?
What if you remove all the Controller Filters?
Reply
#9

(This post was last modified: 02-20-2024, 04:36 PM by kenjis.)

(02-19-2024, 11:16 AM)pippuccio76 Wrote:
(02-19-2024, 10:45 AM)InsiteFX Wrote: Check your Routes also.

PHP Code:
php spark routes 

Spark doesn't work only on local host ? My host it's a shared hosting...

Try:
PHP Code:
<?php

namespace App\Controllers;

class 
Home extends BaseController
{
    public function index(): string
    
{
        return '<pre>' command('routes');
        //return view('welcome_message');
    }

Reply




Theme © iAndrew 2016 - Forum software by © MyBB