Skip to main content

Multiple configuration files for CodeIgniter

I recently came across a problem which is very common when deploying a web application. This time, I'm trying it with CodeIgniter. I purchased a domain and a small shared hosting to which I deploy a simple app. Along with it, I purchased the SSL so it should be accessed with https rather than http. Even all http request should be redirected to https, that's two problems.

A way to solve it is via .htaccess in the root app directory. For multi environments, we can set a CI_ENV variable via


    SetEnv CI_ENV development


So in our application/config directory we can add production directory which consist of config.php and database.php. These settings are then for production. So when we deploy the application, we need to updated those settings for production. As for me, I also have test and stage settings so I also have those directories in my config directory with config.php and database.php corresponding to that environments. This is preferred since we need to test it and put it to stage when testing is done with no issues. Stage connects to the production data but with the php files from my develop branch. In a way this tests the application with the production data. If all goes well, we can proceed to deploying to production.

Another problem is the https redirect. We can solve it with

# Uncomment these lines for https redirection
RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# End http redirection

This is still in the .htaccess file. Just below the RewriteEngine on. So accessing the site via http will redirect to https.

And... we are good to go. I just couldn't find a solution for multiple .htaccess for different environments. But maybe it'll be for another post. Right now, I comment/uncomment the redirect statements when I develop locally and when I deploy it to my hosting. Anyway, I'm happy with what I have for now so yeah, if you have comments and suggestions please do comment below and I'll try to answer as best as I can.

Thanks and have a great day everyone!

Comments

Popular posts from this blog

Theory of the Genesis of Bam-e

Well, I was pondering of things today. I mean no things? Like nothing? Can't mine like shit, electricity is down almost every 2 hours so I was wondering to myself... How the hell the name "Bam-e" came to be? As a programmer I need to know the origin of it. Like learning new techniques in programming. I need to dissect things. First off, maybe it's a Tagalog term. I think so. And yeah I found it, or did I. I thought the story goes like this. Someone named Dave came to visit Bam. Here it goes... Dave: Hi, Bam ano yang ginawa mo? Bam: Nagluluto Dave: Yay, maganda yan! Masarap ba yan? Bam: Ah wala, hinalo ko lang ang mga natirang ingredients Dave: Ano name nyan? Bam: Hindi ako sure eh! Dave: Patingin nga? Bam: Sure Dave: Pancit lang naman yan Bam eh! Well, if you don't know tagalog. I'm sorry, I'm not the person to talk to. I'm Bisaya and I'm very bad at tutoring Filipino. The hell, I got 79% when I was in high school. I hate the God ...

Elementary Tweaks

Well, I like smaller fonts and I've tried Elementary OS Luna. I like it and I'm searching a way to make the default fonts smaller. Just so I have more spaces to work on, especially when I code and read. Luckily I found a solution to download the tweak and make the fonts/icons custom sizes in Elementary Luna. This is how I did it. Hope you guys find it useful. Run this in your terminal. sudo apt-add-repository ppa:versable/elementary-update sudo apt-get update sudo apt-get install elementary-tweaks And if anyone is interested in my setting, here's my screenshot. You can find it in System Settings/Tweaks btw. Thanks everyone!

My Linux Journey: Hello World with .NET

Today marks the beginning of my journey into the world of Linux. As a lifelong Windows user, venturing into a new operating system felt like stepping into uncharted territory. But armed with curiosity and a desire to explore, I took the leap. My first task? A simple "Hello World" program using .NET. With the installation of .NET 8.0 on my Linux machine, I was ready to dive in. I created a new directory for my project, aptly named "helloworld," and ran the following commands: dotnet new console -o helloworld cd helloworld dotnet run And just like that, the words "Hello World" appeared on my terminal screen, a small victory but a significant milestone in my Linux journey. As I reflect on this humble beginning, I am reminded of the endless possibilities that lie ahead. From mastering the command line to exploring the vast ecosystem of open-source tools and technologies, there is much to learn and discover. Join me as I embark on this exciting adventure, one c...