Your web server is not rewriting URLs, so only the front page ever reaches PHP. Convoro can work without rewriting — add <code>'URL_REWRITING' => 'off'</code> to <code>config/site.php</code> and every address will carry <code>index.php</code>. Turning rewriting on is the better fix, and this article says how.

The symptom is distinctive: the installer worked, the front page loads correctly, and then every link gives a Not Found page that looks nothing like Convoro — usually Apache's own, naming its version at the bottom.

Nothing is wrong with Convoro, and nothing is wrong with your database. Convoro puts every page behind one address — /forums, /topic/12, /admin — and none of those are files on disk. The web server has to be told to send addresses it cannot find to index.php. That instruction is in the .htaccess file Convoro ships. If your server is not reading it, or cannot act on it, only / ever reaches PHP.

The immediate fix, with nothing to install

Open config/site.php and add this line inside the array:

'URL_REWRITING' => 'off',

Every address Convoro builds will now carry the front controller — /index.php/forums instead of /forums — which works on any server, because index.php is a real file. The site is fully functional this way. The addresses are simply longer.

If you cannot edit files right now, visit /index.php/admin in your browser. Convoro notices the front controller in the address and keeps it on every link from there on, so the whole site works for as long as you stay on those addresses.

The better fix: turn rewriting on

Then delete the URL_REWRITING line and the tidy addresses come straight back. Nothing is stored against the longer ones.

WampServer. Left-click the tray icon, then Apache → Apache modules, and tick rewrite_module. Apache restarts itself. 🚨 Check the tickbox again after the restart — this is where it most often silently fails to stick.

Apache generally. Two separate things have to be true, and only one of them is the module. Enable mod_rewrite, and make sure the directory allows .htaccess to do anything: the <Directory> block for your web root needs AllowOverride All, not AllowOverride None. With None, Apache reads the file and ignores every line in it, with no error anywhere.

Which of the two is it? Add a line of deliberate nonsense — ThisIsNotADirective — to the very top of the .htaccess in your web root and reload the page. A 500 Internal Server Error means the file is being read, so the problem is the module. The page loading unchanged means Apache is ignoring the file entirely, so the problem is AllowOverride. Remove the line afterwards either way.

nginx. There is no .htaccess at all. The site config has to send unknown paths to index.php itself — there is a working config in docs/deploy/nginx.conf in the download.

Check the file is actually there

🚨 Windows Explorer hides files whose names begin with a dot, so .htaccess can look missing when it is not. In a command prompt, dir /a in the folder will show it. All nine of the .htaccess files ship in the release zip.

Why the installer did not stop you

It cannot be answered from inside PHP: the function that lists Apache's modules does not exist under FastCGI, which is what WampServer uses. So the installer asks your browser to fetch an address that only works through a rewrite, and warns you if it comes back 404. From that same check it now writes URL_REWRITING for you, so a fresh install on a server like this simply works.

It is a warning and never a block — a probe can fail for reasons of its own, and refusing somebody's install over one would be worse than the problem.

Sign in to say whether this helped.