Welcome Guest, Not a member yet? Register   Sign In
Setup for Apache on Ubuntu Server
#1

My apologies, I know this topic has been addressed several times already on this forum. However, I can't get my installation to work properly.

This is my setup: I have an Ubuntu 18.04 server, with Apache. I've setup my virtual host like this:

Code:
<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName jules
    ServerAlias jules
    DocumentRoot /var/www/jules/appstarter/public
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>


.env like this:
Code:
CI_ENVIRONMENT = development

#--------------------------------------------------------------------
# APP
#--------------------------------------------------------------------

app.baseURL = 'http://jules/'

I installed the appstarter trough composer in /var/www/jules/appstarter/ , and I when i go to http://jules, I see the welcome page for CodeIgniter, so far so good.

Now of course I want to remove index.php, so I've set $indexPage = ''; in Config/App.php

I tried all sorts of different things for the RewriteBase directive in .htaccess, but no matter what I do, http://jules/login does not work, but http://jules/index.php/login does. What could be wrong?

.htaccess in /var/www/jules/appstarter/public:

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 /appstarter/

    # Redirect Trailing Slashes...
    RewriteCond %{REQUEST_FILENAME} !-d
        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 ^(.*)$ 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

For RewriteBase I've tried '/appstarter/', 'appstarter', '/appstarter', '/appstarter/public', '/', etc.
Reply
#2

docs mention this:
If a URL like /mypage/find/apple doesn’t work, but the similar URL /index.php/mypage/find/apple does, that sounds like your .htaccess rules (for Apache) are not set up properly, or the mod_rewrite extension in Apache’s httpd.conf is commented out.

i'm on slackware so its not quite the same but i did have to fiddle with httpd.conf and note this is UN-commented.

LoadModule rewrite_module lib64/httpd/modules/mod_rewrite.so

//is yours ?
Reply
#3

(This post was last modified: 05-30-2020, 01:19 PM by dave friend.)

Because your VirtualHost defines the full path to "public" you do not need and should not use RewriteBase.
Reply




Theme © iAndrew 2016 - Forum software by © MyBB