Microsoft Forums URL address format

Good day,

I have small tip for you today. Did you know that understanding the URL format will give you the power to find forums that you didn't even know exist? Moreover, by understanding the URL format you can learn a lot about the forums that you are using. In this post I would like to explain the URL address format of Microsoft forums, but first we need some background.


TechNet or MSDN forums

TechNet forums and MSDN forums are one and the same. We navigate to the forums using different URL address, but behind the scene these are one and the same, only the GUI interface is different. I will elaborate on URL Mapping in the next section.

Let's examine the three links bellow (click the image to open full screenshot, or use the link to go to the original thread):

MDSN https://social .msdn.
TechNet https://social .technet.
None https://social .

We can see that each of the above links returns totally different interface GUI, but the content of the threads is the same.

* For the sake of this blog we will use the name "TechNet" instead of explicitly write "TechNet & MSDN" every time.

URL Mapping

If you develop web application, then you probably familiar with the idea of URL mapping, which means parsing the URL according to our templates and mapping browsers requests according to the URL parts, as they were variables (values of specific parameter).

In old traditional websites incoming request for a URL typically maps to a physical file that handles the request. URL format can be:
{protocol}://{domain}/{path to internal folder}/{File name}
For example:
Passing values of parameters from the client to the server can be done using GET method, which mean that the data sent in the URL address. For example, if I want to pass the parameter "Language Culture Names", then I can add to the URL a question Mark "?" and list of parameters and their values, separated by the sign "&".

URL mapping allows us to define URL patterns that map the URL requests to any process that we are doing behind the scene, and not only to a physical file. This mean that we can parse the URL, during processing the incoming request. Each part of the pattern can be used as parameter. For example, we can configure the pattern:
Therefore, our URL can be simple as:

Microsoft Forums use URL mapping, and in this blog I want to explain the different patterns, which configured in Microsoft forums. This can be used use in order to find the forum that we need, without even knowing that there is one. All we need to do is to fill the pattern and hope to get an active forum. Moreover, if you are currently using a forum and you want to know more about it, then all you need is to understand the URL address.

For the sake of this post the meaning of URL format is the same as the meaning of URL templates. From the client's point of view the website address has specific format, which is the URL format. But from the point of view of the developer we actually configure URL templates behind the scene.

TechNet Forum URL templates

Well, now that we understand the idea of URL mapping, and we understand that web application can use templates of URLs, we can start our discussion about the templates that Microsoft forums use. Microsoft forums are in fact is one forum, where its threads are divided by different parameters.

* In a followup blog (part-2) we will discuss more advanced options, and how to use the GUI interface (internal links and buttons) in order to navigate the forum threads.

Choose your interface GUI

This is our most simple template:

https://social{.interface name}

We can see that the above template includes the parameter "interface name". This part will configure which interface GUI we are going to use. An example can be seen in the images above in the section "TechNet or MSDN forums". This part can get values: empty, technet, and msdn.

You can change the forums appearance and behavior by simply choosing a different interface. Personally I use the msdn interface, since the technet interface includes some serious bugs in the Hebrew language (related to RTL text).

(*) if the Language Culture Name does not exist (check next section) or if we do not declare it, then you will be redirected to the English language, which serves as a global interface.

Choose the Culture name

The basic Template of the forums URL address is the Home Page for specific culture, which have the format of:

https://social{.interface name}{Language Culture Name}/home

We can see that the above template includes two parameters: (1) interface name, and (2) Language Culture Name.

Language Culture Name : The forums threads are divided into cultures. You can get a list of Language Culture Names in the link here.

Now, without any additional information you already have the power to find forums in any culture that exists at Microsoft forums, even if you do not know that it exists (*1). For example, you can find the English forums by using the URL:**en-US**/home
and you can find the Hebrew forums simply by changing the Language Culture Name in the URL address:

(*) The Language Culture Name also determines the display configuration of the page. For example, the language of the menus, the direction of the page "Right To Left" or "Left To Right", and so on.

Choose the Category

Let's add another parameter and examine a more complex template, which includes Category name.

https://social{.interface name}{Category name}/{Language Culture Name}/home

Category name: The threads in the forum divided into categories like:  "Using Forums",  "SQL Server", "Microsoft Azure", "Visual Studio Development", "Visual Studio Languages", "SharePoint", "Microsoft Office for Developers", etc. Each category represented by a short string that is used in the URL address. For example, the category "SQL Server" represented by "sqlserver". There are at least 127 different categories which I know about (*2).

There are two options to get all the threads in a specific category. We can use the direct parameter using HTTP GET method, or we can use template that includes the parameter. The below links will take us to the same result, all the threads in a specific category in a specific culture:

(*2) Several weeks ago I wrote TechNet WIKI article, which includeed List of forums by Language Culture Names, categories, and field of discussions (topic). You can find the article here.

Once we know the category short name, we can use it in order to find all the threads in that category in a  specific culture, using the Home Page template. For example, all threads in the category "SQL Server" in English culture is:

Let's examine the power of our new knowledge.
Q: Can you find the threads in "SQL Server" category, in Hebrew culture?

A: The answer is:

Choose Specific topic (what usually refers to as a 'forum')

As I mentioned above the logic of specific forum does  not exactly fit to Microsoft forum, as all threads behave like one big forum. We can filter the threads by specific topic, which is the equivalent to specific forum. For the sake of this post and any common discussion, whenever we are talking about Microsoft forum, we mean all the threads in a specific topic.

https://social{.interface name}{Category name}/{Language Culture Name}/home?forum={topic}

As expected all we need in order to get the threads of specific topic (field of discussions) is to add another parameter using the GET method. For example, the next link will take us to the "Transact-SQL" forum:

Choose specific thread

Short option:
https://social{.interface name}{Language Culture Name}/{Thread unique ID}/

Full version:
https://social{.interface name}{Language Culture Name}/{Thread unique ID}/microsoft-forums-url-address-format?forum={topic}

For example:

(*) Understanding the URL format allows you to find the thread ID, which is very important for administrative actions for example.

Advanced options

Here are several of the more advanced parameters that can be helpful to filter the threads. These are HTTP GET method parameters. In order to use them you need to separate the parameters with the "&" sign and they all come after the "?".

  • Filter threads: filter=
    • alltypes           - default option, show all threads
    • answered       - includes responses that marked as answer
    • unanswered  - open questions
    • proposed       - includes responses that proposed as answer, but not get includes responses that marked as answer. This filter is very useful for Moderators that need to close threads!
    • general          - General discussion
    • noreplies       - Threads that did not get any response. This is great option if you are want to be the first that answer new threads.
    • helpful           - Threads that include responses that marked as helpful.
    • hascode         - Threads that include code.
    • alllanguages - returns threads from all languages and not just the current Language Culture Name. This is very useful for members that use several languages.
  • Sort order: sort=
    • lastpostdesc - Most recent post.
    • firstpostdesc- Most recent thread
    • votesdesc - Total votes
    • repliesdesc - Total replies
    • viewsdesc - Total Views

For example: The next link will returns all threads (1) using the msdn interface, (2) in the Hebrew language culture displayed, (3) in multiple forums/topics (Hebrew C#; Hebrew SQL Server; English Transact SQL), (4) filtered by alltypes + by alllanguages (which mean that in spite the use of Hebrew language culture, we get threads from all languages), (5) sorting by lastpostdesc.,sqlhe,transactsql&filter=alltypes,alllanguages&sort=lastpostdesc


We saw in this post the basic templates of Microsoft forum URL address. We saw how we can find forums by language culture, category, and specific topic (field of interest). We can use this knowledge in order to search forums  which we have no information whether exist, simply by trying to change the values of the parameters in the URL address, according to the URL template.

What next?

Did you know that most of the options to navigate the forum using URL address, are also available using the GUI interface?  In the followup post we will discuss these options...


I hope that the post was useful
- Ronen