MyBB Community Forums

Full Version: [Nginx] Enabling Search Engine Friendly URLs
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4
If you are using Nginx instead of Apache web server, this tutorial explains how you can enable MyBB's Search Engine Friendly SEF URLs. Apache users do not need to read this tutorial.

This tutorial does not explain how to install and set up Nginx with PHP from scratch; it is expected that you already have everything up and running, and now all that's left are the SEF URLs.

nginx.conf

First you should make a backup copy of your nginx.conf, so you can go back to your working config in case anything goes wrong.

In the server / location section, add these rewrite rules. Replace /MyBB/ with the directory you have MyBB installed. If your MyBB is installed in a top level domain, replace it with /, if it's in /forum replace it with /forum/ and so on.

Please note that every rewrite statement goes in a single line even if it wraps in your browser here.

location / {
    # ...your location settings are here...

    rewrite ^/MyBB/forum-([0-9]+)\.html$ /MyBB/forumdisplay.php?fid=$1;
    rewrite ^/MyBB/forum-([0-9]+)-page-([0-9]+)\.html$ /MyBB/forumdisplay.php?fid=$1&page=$2;
    rewrite ^/MyBB/thread-([0-9]+)\.html$ /MyBB/showthread.php?tid=$1;
    rewrite ^/MyBB/thread-([0-9]+)-page-([0-9]+)\.html$ /MyBB/showthread.php?tid=$1&page=$2;
    rewrite ^/MyBB/thread-([0-9]+)-lastpost\.html$ /MyBB/showthread.php?tid=$1&action=lastpost;
    rewrite ^/MyBB/thread-([0-9]+)-nextnewest\.html$ /MyBB/showthread.php?tid=$1&action=nextnewest;
    rewrite ^/MyBB/thread-([0-9]+)-nextoldest\.html$ /MyBB/showthread.php?tid=$1&action=nextoldest;
    rewrite ^/MyBB/thread-([0-9]+)-newpost\.html$ /MyBB/showthread.php?tid=$1&action=newpost;
    rewrite ^/MyBB/thread-([0-9]+)-post-([0-9]+)\.html$ /MyBB/showthread.php?tid=$1&pid=$2;

    rewrite ^/MyBB/post-([0-9]+)\.html$ /MyBB/showthread.php?pid=$1;

    rewrite ^/MyBB/announcement-([0-9]+)\.html$ /MyBB/announcements.php?aid=$1;

    rewrite ^/MyBB/user-([0-9]+)\.html$ /MyBB/member.php?action=profile&uid=$1;

    rewrite ^/MyBB/calendar-([0-9]+)\.html$ /MyBB/calendar.php?calendar=$1;
    rewrite ^/MyBB/calendar-([0-9]+)-year-([0-9]+)\.html$ /MyBB/calendar.php?action=yearview&calendar=$1&year=$2;
    rewrite ^/MyBB/calendar-([0-9]+)-year-([0-9]+)-month-([0-9]+)\.html$ /MyBB/calendar.php?calendar=$1&year=$2&month=$3;
    rewrite ^/MyBB/calendar-([0-9]+)-year-([0-9]+)-month-([0-9]+)-day-([0-9]+)\.html$ /MyBB/calendar.php?action=dayview&calendar=$1&year=$2&month=$3&day=$4;
    rewrite ^/MyBB/calendar-([0-9]+)-week-(n?[0-9]+)\.html$ /MyBB/calendar.php?action=weekview&calendar=$1&week=$2;

    rewrite ^/MyBB/event-([0-9]+)\.html$ /MyBB/calendar.php?action=event&eid=$1;
}

Restart Nginx so the changes can take effect.

MyBB settings

In Admin CP, go to 'Configuration' -> 'Server and Optimization options' and set 'Enable search engine friendly URLs?' to 'Enabled'.
(The auto detect option will not work with Nginx.)

Go back into your forum and test if the MyBB SEF URLs work.

Troubleshooting
  • Nginx refuses to start
    You probably made an error when editing the config file; Nginx should tell you where the error is, correct it.
  • I get 404 errors when clicking on thread / forum links
    Your rewrite rules are not working. Maybe you used the wrong path (in the example /MyBB/). Replace it with the correct path, for example / or /forum/. Also check if you installed Nginx with PCRE and HttpRewriteModule support.
I'll bookmarks Frost.
Thanks..

It would be nice, if your Google SEO Mod has ability to switch between Nginx and Apache Rewrite. Or include it this totorial file into Smile
also this one http://community.mybboard.net/thread-51759.html
Google SEO already includes example rewrite rules for lighttpd and nginx, it's just not officially supported or recommended. If you have problems with it or if you change to custom URL scheme in the Google SEO settings, you have to adapt the example rewrite rules by yourself, I don't have the time to do this for you. Sorry if this sounds harsh, but I'm spending more than enough time supporting this plugin as it is...
I mean, not applied on your mod. I know How hard the code is Smile
But, only information that your tips apply on Default MyBB SEO Friendly URL

Thanks
You mean like this? Huh

(2009-06-22, 02:03 PM)frostschutz Wrote: [ -> ]this tutorial explains how you can enable MyBB's Search Engine Friendly SEF URLs.

You can do both, MyBB SEF URLs, or Google SEO URLs, or something entirely different... once you know how to do rewrites with lighttpd/nginx you can do rewrites for pretty much anything, the concept is the same, the syntax slightly different from .htaccess.
Thank you for this tutorial.
I realize this is extremely old, but I've been working with nginx and this has helped a lot. I was about to pull my hair out.
how to enable google seo RewriteRule to Nginx Huh --help
(2014-02-27, 11:14 PM)SunDi3yansyah Wrote: [ -> ]how to enable google seo RewriteRule to Nginx Huh --help

http://lmgtfy.com/?q=mybb+%2B+nginx+%2B+google+seo

https://github.com/frostschutz/MyBB-Goog...-nginx.txt
(2014-02-28, 04:31 PM)Euan T Wrote: [ -> ]
(2014-02-27, 11:14 PM)SunDi3yansyah Wrote: [ -> ]how to enable google seo RewriteRule to Nginx Huh --help

http://lmgtfy.com/?q=mybb+%2B+nginx+%2B+google+seo

https://github.com/frostschutz/MyBB-Goog...-nginx.txt

Thanks Euan T Big Grin

I addition to the Google Seo page 404

error_page 404 /misc.php?google_seo_error=404;
Pages: 1 2 3 4