SEO-friendly, user-readable URLs with phpBB 3.2

1 min read

I set up a forum using phpBB 3.2 this week and I wanted the URLs to be user readable and SEO-friendly (although this doesn’t really matter to search engines anymore, still figured it’d be a nice-to-have feature). I decided to make some changes to the phpBB core files. Now, my approach isn’t exactly ideal, because there will definitely be problems that arise from merging if any of the files modified for this are updated in newer versions of phpBB, but it gets the job done. If you would like to achieve this, you can proceed with the steps below after the friendly warning.

Disclaimer: Proceed with these steps at your own risk. I am not liable for any damage or harm that may occur to your forum, database, server, computer, or even pets from making use of the modified files in order to achieve the desired functionality. Always remember to make multiple backups of your files before making any changes.

First things first. Here are the fancy URL formats that we want to achieve.

  • /memberlist.php becomes /members
  • /memberlist.php?mode=viewprofile&u=2 becomes /members/u2-admin
  • /viewforum.php?f=1 becomes /f1-awesome-forum-url
  • /viewtopic.php?t=1&f=2 becomes /f2-another-awesome-forum/t1-just-do-it

This can be achieved by adding the following Apache rewrite rules to your .htaccess file (or your httpd configuration). Please note that mod_rewrite needs to be enabled for this to work.

If you’re running on nginx, you can add the following lines to your configuration.

Once you’ve updated your configuration files, unpack the ZIP archive into the top-level folder of your phpBB installation. Remember to make a backup of all your files before doing this. For reference, here are the files that will be overwritten after extracting the files in the archive.

  • .htaccess
  • index.php
  • memberlist.php
  • posting.php
  • search.php
  • viewforum.php
  • viewonline.php
  • viewtopic.php
  • includes/functions.php
  • includes/functions_content.php
  • includes/functions_display.php
  • includes/functions_posting.php
  • phpbb/feed/helper.php

You can view the modifications in action at https://www.eresidency.co. To reiterate, this is not an ideal solution, and you have to watch out for conflicts if you’re trying to upgrade to newer versions of phpBB, but it gets the basic job done. If there are any improvements you’d like to see, post a comment below.

The archive can be downloaded from https://drive.google.com/open?id=0B27L6m8VLspCSjExREJweHBUS1U.

Handle gamepad input by reading from /dev/input using C#…

Now that we have a gamepad connected over bluetooth, and we are able to detect it programmatically, the obvious next step would be to...
Akinwale
6 min read

How to programmatically detect if a gamepad is connected…

Since I managed to get the Xbox Wireless Controller connected to the PINE64 using bluetooth, I had to come up with a way to...
Akinwale
6 min read

Xbox Wireless Controller connected to the PINE64 running Ubuntu…

Although the goal of the autonomous robot project is to have a robot that can navigate without human input, it’s not a bad idea...
Akinwale
15 min read

3 Replies to “SEO-friendly, user-readable URLs with phpBB 3.2”

  1. Thanks. thanks for the codes. it just needs some improvement. Previously, the site (phpbb-seo.com/) had support until version 3.0.14. Ultimate seo url will be super developed if it is. regards

  2. [phpBB Debug] PHP Warning: in file [ROOT]/phpbb/version_helper.php on line 493: preg_match(): Empty regular expression
    [phpBB Debug] PHP Warning: in file [ROOT]/includes/functions_acp.php on line 137: Cannot modify header information – headers already sent by (output started at [ROOT]/includes/functions.php:3257)
    [phpBB Debug] PHP Warning: in file [ROOT]/includes/functions_acp.php on line 137: Cannot modify header information – headers already sent by (output started at [ROOT]/includes/functions.php:3257)
    [phpBB Debug] PHP Warning: in file [ROOT]/includes/functions_acp.php on line 137: Cannot modify header information – headers already sent by (output started at [ROOT]/includes/functions.php:3257)

    Yeaaah, working good but I receive this in admin panel and … it’s frustrating me. Also It can’t be possible to delete that f4 or t4 from url string? :/

Leave a Reply

Your email address will not be published. Required fields are marked *