Welcome Guest, Not a member yet? Register   Sign In
How do I ensure that rewrite works properly?
#1

When I go to the root of my installation which is /ci4 right now I just get this:
[Image: root.jpg]
If I go to /public it works fine but it needs to go there from the root of the folder.
I've added a .htaccess file and added in the code here, but i don't know how much of it is needed:
Code:
#CI4 stuff (added Oct 2021) dc

# 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 /public

    # Redirect Trailing Slashes...
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)/$ /public/$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 ^(.*)$ index.php/$1 [L]

    # 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

I've confirmed that I'm on the latest version of PHP and that rewrite engine is turned on for the shared server it's on.
I've added in the Config/App.php like this:
PHP Code:
public $baseURL 'http://www.seedetail.co.uk/ci4/'

seedetail.co.uk/phpinfo.php shows the server details.
Reply
#2

(10-19-2021, 07:52 AM)Inquisitor Wrote: When I go to the root of my installation which is /ci4 right now I just get this:
[Image: root.jpg]
If I go to /public it works fine but it needs to go there from the root of the folder.
I've added a .htaccess file and added in the code here, but i don't know how much of it is needed:
Code:
#CI4 stuff (added Oct 2021) dc

# 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 /public

    # Redirect Trailing Slashes...
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)/$ /public/$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 ^(.*)$ index.php/$1 [L]

    # 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

I've confirmed that I'm on the latest version of PHP and that rewrite engine is turned on for the shared server it's on.
I've added in the Config/App.php like this:
PHP Code:
public $baseURL 'http://www.seedetail.co.uk/ci4/'

seedetail.co.uk/phpinfo.php shows the server details.

If you are using cPanel

It looks like your Document Root may be pointing to public_html

I think your Document Root should be pointing to Home/<site folder>/ci4/public
Reply
#3

(10-19-2021, 10:15 PM)paulkd Wrote: If you are using cPanel

It looks like your Document Root may be pointing to public_html

I think your Document Root should be pointing to Home/<site folder>/ci4/public

Thanks for your reply. The thing is I have other directories which are also needed, e.g. a ci3 folder for testing, other test sites, so this would not let me use those sites.
Reply
#4

(10-20-2021, 02:08 AM)Inquisitor Wrote:
(10-19-2021, 10:15 PM)paulkd Wrote: If you are using cPanel

It looks like your Document Root may be pointing to public_html

I think your Document Root should be pointing to Home/<site folder>/ci4/public

Thanks for your reply. The thing is I have other directories which are also needed, e.g. a ci3 folder for testing, other test sites, so this would not let me use those sites.

Domains are cheap. I use subdomains off a main domain for use as testing sites.
Reply




Theme © iAndrew 2016 - Forum software by © MyBB