Concrete5

concrete5 is an open source content management system (CMS) for publishing content on the World Wide Web and intranets.

It enables users to edit site content directly from the page. This makes the platform easy to use with a minimum of technical skills. This feature, combined with a version management for every page[8], are typical of wiki software, another type of web site development software. concrete5 allows users to edit images through an embedded editor on the page

Concrete5 was chosen as SourceForge's "Project of the Month" October 2008.

"concrete5 showed the largest growth of any system in the Developer Support metric. We feel the future looks bright for concrete5" - 2010 Open Source CMS Market Share Report

Concrete5 is easy to install on dreamhost!

And it almost works.

I did the one-touch install of Concrete5 and spent quite a bit of time exploring it. It is a better than average CMS, much more powerful than a Wiki (I've used Many), but also more complicated to use, skin, and customize.

I ran into one flaw in the install and I want to warn everybody. After installing, there is a "Dashboard" where one can customize settings. I turned on the "pretty url" function, so that the URLs would be more human readable. After doing that, the dashboard prompts the user to add some language in the .htaccess file in the concrete5 install folder. Actually, the Dreamhost installation actually writes the lines into .htaccess for you. But it inserts lines that are not correct. As a result, a click on any new page in the CMS ends in a blank page with a simple error message "No input file specified."

note from geodave: There may be an easy fix. Try adding a question mark after index.php in the .htaccess text. Therefore the line RewriteRule ^(.*)$ index.php/$1 [L] becomes RewriteRule ^(.*)$ index.php?/$1 [L]. This fixed the problem for me, no other fixes necessary. --geodave out

I found plenty of posts about this problem in Google, it has something to do with the version of Apache and mod_rewrite being used. Several fixes have been proposed. I tried several, have one that does seem to work.

The Concrete5 pretty url confure tool says one ought to have this .htaccess file:

 RewriteEngine On RewriteBase /cc/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] 
 * 1) -- concrete5 urls start --

However, that does not work at all, pages say "No input file specified".

On January 7, 2011, one author crafted a patch that I have applied to my concrete5 install folder. After fixing the .htaccess file as well, my pretty url concrete 5 page is working.

"Pretty URL’s with Concrete5 on DreamHost" http://www.gimmesoda.com/pretty-urls-with-concrete5-on-dreamhost/

He said he will put that patch in front of the developers, so maybe the whole thing will be fixed soon for automatic installs.

Other places to read more. The problem appears on many sites:

http://www.concrete5.org/community/forums/installation/no-input-file-specified/

CodeIgniter users report similar problem: http://codeigniter.com/wiki/Dreamhost_.htaccess/

This post is about Dreamhost 2.0, but the changes it recommends do not work for me today. http://jeremeclaussen.com/blog/2010/3/30/concrete5-pretty-urls-and-dreamhost-v2-0/

I'll come back and post if I find an answer that really works for more than 10 minutes :)

--Pauljohn32 22:22, 17 January 2011 (PST)

I found this .htaccess code on the concrete5 site before they redesigned it all... But can't seem to find it anymore so I thought I should post it here for ease. But this has worked a treat EVERYTIME for pretty urls on dreamhost and its pretty simple (its just changing things in the .htaccess file).

RewriteEngine On RewriteCond %{REQUEST_URI} !^/cgi-bin/.* RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L]''

--Dhtbrowne 16:23, 16 March 2011 (PDT)
 * I've tried this, and it still doesn't work. The same "No input file specified" message appears. Concrete5 is great software, and having tried many others over the years including drupal and joomla, I want to stick with Concrete5. The pretty url problem is a nuisance though. Pauljohn32's solution above is the only one that has worked for me so far. Dreamhost needs to look at this problem. I spent over 5 hours on various solutions and suggestions that just didnt work. If it's going to be "one click install" it really needs to be one click otherwise new less-savvy users will simply give up on it. GumbyBlue 02:36, 23 March 2011 (PDT)
 * This situation is not very good. Googlebot is indexing both the pages with the, eg. "/index.php?cID=1" as well as the pretty url address. This means duplicates are being indexed. This is not good for search rankings. The "canonical url" tag is not showing up on the page source metadata itself, so its useless. GumbyBlue 01:34, 26 March 2011 (PDT)

--Fireacer 5:14, 8 May 2012 (AEST)
 * I've found a few interesting tricks with Concrete 5 - especially the current version. To get both .htaccess working and also to get php.ini working (as I am sure many people will do), this is what i used.

AddHandler php-cgi .php Action php-cgi /cgi-bin/dispatch.cgi  RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}/index.html !-f RewriteCond %{REQUEST_FILENAME}/index.php !-f RewriteRule ^(.*)$ index.php/$1 [L] 

The pretty urls work and so does the custom php (using dh-phpini.php installer).

The following .htaccess file contents appear to work properly for pretty urls with concrete 5:

 RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$1 [L] 
 * 1) -- concrete5 urls start --

Note the addition of the ? after 'index.php', before '/$1', as well as RewriteBase /cc/ has been changed to RewriteBase /