By Bruce Chapman on
Wednesday, June 24, 2009 12:33 AM
I've just published the latest release of the Url Master module, which contains an exciting new feature. The new feature is the ability for any DNN site, regardless of what other software it uses, to use 'Vanity' Urls. A vanity url is just a simple url which acts a shortcut to your user profile page. The most famous recent case was the decision by Facebook to open up their system to associating a Url to a members facebook account. But it's nothing new : twitter use simple User Profile urls (http://twitter.com/brucerchapman), as does LinkedIn and countless other sites.
I started to get a few requests for this type of thing, mostly for people who are using Url Master on a site setup for social networking. Initially I said it couldn't be done, but if you leave the subconscious working on something for long enough, a bright idea is bound to occur. So I'm happy to announce that, from version 1.14, the Url Master module now contains a feature to allow any...
Read More »
|
By Bruce Chapman on
Tuesday, June 23, 2009 6:01 PM
This is becoming a very common help request for me lately, as increasing numbers of people convert old html (and asp and php) based websites into DotNetNuke® based websites to take advantage of the extra power of the DNN framework. The problem occurs that many Html based websites have been around a long time and generally rank well in search indexes. Typically, the site owner wants to make sure that none of that existing ranking and associated traffic is lost when converting to a new DotNetNuke® site.
This post will cover all of the steps necessary to divert traffic away from an old html based website to a new, DotNetNuke® based website. If you have an old .asp or .php based website, the instructions are virtually the same with just the file extensions changed.
0. Do your backups. You're going to be modifying the web.config file, so take a backup of this file before you start. If you mess it up, getting it all back will be as simple as restoring your previous web.config file.
1. Install the...
Read More »
|
By Bruce Chapman on
Wednesday, June 03, 2009 4:36 PM
Every programmer loves to have a little kit-bag of common functions, workarounds, hacks and shortcuts. It's the stock-in-trade of a seasoned developer : they've seen the common problems before, developed a solution once, and unit-tested the living heck out of it. The iFinity.Utilities DLL is such a file : it's a very small .NET library which contains base classes, common functions, database shortcuts and the like. It's been bundled into quite a few of the DNN modules that I have distributed over the years.
There's a small problem though : DotNetNuke® doesn't really 'do' shared file installations for modules. Basically, if you include a file in a module manifest (the listing of all the resources that get installed with a module), DNN remembers that you copied the file in when a module was installed. And, when you uninstall that module, it takes the file straight back out again. It's a modern, DNN version of the old DLL hell you could get yourself into with Windows 95 and COM.
Now back when I...
Read More »
|
By Bruce Chapman on
Friday, May 22, 2009 11:15 AM
Chris Hammond today posted the latest show of DNNVoice, a DotNetNuke podcast. This show (Show #7) features an interview with yours truly. In this interview with Tom Kraak of seablick.com, I cover a few topics which would be familiar to readers of my blog. Principally, I discuss DotNetNuke®, SEO and Urls and where I think the improvements can be made. You can download the full podcast at http://www.dnnvoice.com/Home/itemId/23177/DNNVoice-Show-7-Discussion-on-SEO-and-URLs-with-B.aspx
Read More »
|
By Bruce Chapman on
Wednesday, May 13, 2009 7:18 PM
It's no secret that, for a long time, I've had this site running with no page extensions - instead of having all of the pages ending with .aspx, I converted it a long time ago to /. It's been pointed out to me several times by several people that the '/' should actually denote part of a path, instead of the actual resource. Deep down I agreed with this but it was harder to code : therefore confirming my long-held assertion that most programmers are actually lazy.
However, I'm happy to report that the laziness and inertia was overcome and I've refactored the Url Master code so that, when 'no page extension' is selected as an option, the paths will look like this : domain/path/path/page rather than domain/path/path/page/. Not only that, but I've also included a 301 redirect for the '/' suffixed paths back to the plain old path.
You can see the results just by looking at the url of this very blog entry.
How you can switch off page extensions Like what you see? Well, you can have it as well. ...
Read More »
|
By Bruce Chapman on
Monday, May 11, 2009 5:08 PM
It's not that often that something truly new comes along in the world of Search Engines, especially something that the Search Engine companies themselves promote. Whenever it happens, there's always a flurry of activity and a lot of false information being thrown about.
Something new just came along at the SMX conference, the 'Canonical Link Element'. You've probably already read about this, but if you haven't, it's a tag you can add to the header of your webpages to tell the Search Engines what the 'Canonical' (also Normalized) Url is. Canonical or Normalized Urls are the 'one true Url' for that page.
Background on Canonical Urls and Duplicate Content Canonical Urls are the opposite of duplicate content. Duplicate content is the result of having one distinct page of content returned for different urls. In DotNetNuke®, consider all these Urls for a mythical 'domain.com' dnn site:
www.domain.com/
domain.com/
domain.com/default.aspx
...
Read More »
|
By Bruce Chapman on
Monday, April 20, 2009 11:01 AM
I tend to receive a lot of email, enquires and forum posts about the field of Url Rewriting and Friendly Urls in DotNetNuke®. Generally the questions are related to improving the Urls on a site for the purposes of Search Engine Optimisation.
This post is intended to be a go-to resource for those questions, as the answer generally involves a bit of education on how the whole Url scheme in DNN fits together. It's important to understand the basics before trying to improve upon them. The aim is to educate on the issues and constraints at hand.
Defining Terms I'll use some terms throughout this post, so to clear up confusion, this is what I mean:
Url Rewriting : This is the process whereby the Url for a page is intercepted by the website platform, and modified internally, so that the rest of the processing sees the modified Url, rather than the original Url. In DotNetNuke®, this is typically the process of taking a pagename and converting it to a tabid value, so that the rest of the modules in...
Read More »
|
By Bruce Chapman on
Tuesday, March 24, 2009 3:54 PM
I recently had reported problems when using IIS7 that Urls with a + in the url were failing with 404 errors. This was to do with the Url Master module, which often rewrites Urls to use a simple space encoding (+) rather than the messy (but still valid) %20 encoding. Normally this is where you have a DNN module that uses a querystring value, where the querystring value gets incorporated into the path of the Url via Friendly Url generation.
As is often the case with errors, I have never heard of them and then within a week I'll get several reports of the same error, even when a particular problem has been 'in the wild' for a long period of time. It's like the progression of systems across new technologies happens at a steady rate, so that very few people are a long way ahead and trying new things.
The problem occurs in Urls like this : www.mysite.com/my-page-name/key/value+with+spaces.aspx
This Url would be rewritten to this value : www.mysite.com/default.aspx?key=value+with+spaces
Note...
Read More »
|
By Bruce Chapman on
Wednesday, March 18, 2009 5:44 PM
The tags and tag cloud you see on this blog are from the iFinity Tagger module. This module works by running a Page Tag cloud module on the same page as the blog module, and when I post a blog entry, I manually add the tags to the Tagger module. The Tagger module knows that each blog entry is indexed by the Url value of 'EntryId', so it stores the relevant tags against that module id/page id/entry id combination. This module has been out for about 12 months so far, and people use it to tag Blog entries, product catalogs and plain old DotNetNuke® pages. So far so good.
Occasionally, I get requests to integrate the Tagger module into other pieces of software, so I point the person in the direction of the Tagger API and IntermoduleCommunication (IMC) interface. If you didn't know, the IMC interface is a programming device in DNN that allows you to pass information between two modules on the same page.
One of the more common requests is to integrate the Tagger module directly into the DNN Blog...
Read More »
|
By Bruce Chapman on
Tuesday, February 24, 2009 11:22 PM
When DotNetNuke® 4.9.2 and 5.0.1 landed, they contained a new option on the Page Settings screen : 'Permanent Redirect'
This option allows you to define a new destination for the page in question. To use it, you tick the permanent redirect option, and select a destination Url by defining a Url in the 'Link Url' field.
Once you have saved this option, any request for that page will return a 301 redirect http status code, and provide the new Url as the destination. If you choose a page as the link, the 301 redirect will go to the current Url for that page. If you choose a url, the...
Read More »
|