XF 1.2 Route Filters

Route Filters are a new system in XenForo 1.2 to allow you to change the standard URLs generated by XenForo, including any URLs generated by add-ons.

It's a fairly simple system to show, but it's very powerful with a little thought. Let's look at what you can set with it:

ss-2013-04-05_14-48-30.webp


Other than a list of route filters, that's really it for the system. So how about a few examples...

Changing a route prefix
There's an add-on that does this right now, but we can do it simply from here. For example, if you want to change the resources URL to downloads, you'd just enter resources/ in the find box and downloads/ in the replace box.

Instantly, any links to http://xenforo.com/community/resources/ would become http://xenforo.com/community/downloads/. URL canonicalization would still happen, but it'd use the new URLs.

So yes, if you want to change the forums prefix, you can do that.

Note that the find and the replace fields both need to start with a "prefix" (basically, alphanumeric and dash), so you can't simply remove a route prefix. Doing that would break everything. :)

Changing a more specific URL
If you want to change a specific URL--or any URL that begins with a particular string--you can do that with route filters.

Maybe you have a page with a URL like pages/page-name/ and you'd rather it be page-name/. You can do that by simply entering those in the find and replace boxes respectively.

You can even create different URLs for specific threads if you wanted to, or maybe a different URL for navigating pages in threads--find: threads/{title}/page-{num:digit}, replace: threads/{title}/{num:digit}-duplicate-posts .

While it may require a bit of manual work, you could get pretty creative with your URLs. You could even give your page URLs hierarchy, if that's how you store your pages:

pages/btcc/ -> btcc/
pages/btcc-2013/ -> btcc/2013/
pages/btcc-2013-drivers/ -> btcc/2013/drivers/
pages/btcc-2013-races/ -> btcc/2013/races/

Creating aliases
Up until this point, I haven't mentioned the "incoming URL conversion only" option. I've assumed that it hasn't been checked up until now.

This option lets you allow a URL to work but it doesn't affect what's considered the canonical version. So maybe we want to have releases/114 take us to our 1.1.4 release threads/xenforo-1-1-4-released.47030/ but we want the original URL to be the real URL. We could do that by putting threads/xenforo-1-1-4-released.47030/ in the find box and releases/114 in the replace box. I'm aware this might seem backwards, but the system is written from the perspective of outgoing conversions, so find represents the URL XF is generating; the incoming conversion reverses it. It means that you don't have to swap the values in find/replace if you check/uncheck the incoming only option.



...So go wild! :)
 
hi! plz, need help - i use XenPorta and today i update xenforo to 1.2
I can't adjust so that was as before:
main page it was available on http://mydomain.com (set option "Index Page Route" as 'portal/')
forum on http://mydomain.com/community (set rule in ERF - 'forums/' -> 'community/')
thus that links to subforums were http://mydomain.com/forums/1 and etc. Now links as http://mydomain.com/community/1 (how?!!)

I used earlier Router, but this addon it is more incompatible, as far as I understand, and it should be removed

and my XF installed in on my web server in root folder
 
Last edited:
Depending on the URLs you chose, they will stop working. (Which is roughly why the option for converting incoming URLs only exists.)
 
Something that would be really handy would be if the Route Filters could have an option to override the "board URL" (have the XF link generator use the full URL when it's specified).

Essentially I'd like to move some routes that are not forum specific off my forum sub-domain. For example... make the help section be here:

https://www.digitalpoint.com/help/

instead of here:

https://forums.digitalpoint.com/help/

The URL itself already works, it's just a matter of the XF link generator building it.

Alternately, could we maybe get the XenForo_Route_Filter class extendable via listeners and I could do it myself?
 
What's the impact on performance / server load as increasingly more route filters are added?

I'm not sure about the limitations of this, can we do this for the whole forum:

Change: http://xenforo.com/community/threads/route-filters.47946/

to: http://xenforo.com/forum/forum_id/route-filters.47946/ ?

and

Change: http://xenforo.com/community/forums/have-you-seen/

to:

http://xenforo.com/forum/forum_id/ ?

In other words change the complete URL structure similar to what vbseo used to do for vb, or is the system not designed for this purpose? Also how does it impact SEO, does it deal well with that (i.e. no duplicate content)?

I could not find any response on this question...
What's the impact on performance / server load as increasingly more route filters are added?
As i plan on adding router filters to practically all nodes! :cautious:
 
Top Bottom