Benutzerfreundliche URLs in DotNetNuke aktivieren

Wie ich bereits in meiner Ankündigung der Verfügbarkeit der neuen Version berichtet habe, wurde DotNetNuke in der Version 4.7.0 ein neues Feature spendiert:

Die Benutzerfreundlichen URLs oder wie sie in englischen heißen: Human Friendly URLs

Dieses neue Feature ist leider nur für eine ganze Installation und nicht für jedes Portal separat einschaltbar.

Wobei der Ausdruck „einschaltbar“ etwas irreführend ist, da man nicht einfach dieses Feature durch einen Schalter aus der Systemeinstellung ein bzw. ausschalten kann.

Um dieses  Feature zu aktivieren ist es notwendig in dem Bereich friendlyUrl in der web.config dem Provider ein Attribut manuell hinzuzufügen. Man hat wohl irgendwie vergessen, oder keine Zeit mehr gehabt, den Default Wert in die web.config zu übernehmen, so dass man dann ziemlich einfach gewusst hätte wie man zwischen den Suchmaschinenfreundlichen und den Benutzerfreundlichen URLs umschalten kann.

Bevor ich nun zeige was man in die web.config eintragen muss um dieses Feature zu aktivieren möchte ich zuerst kurz erläutern wie sich der Einsatz dieser Funktion auf die URLs auswirkt.

In frühen Versionen von DotNetNuke, oder auch Heute noch ohne den Einsatz der Suchmaschinenfreundlichen URLs hat eine URL in DotNetNuke typischer weise so ungefähr ausgesehen:

http://www.schelian.de/default.aspx?tabid=257 (Diese URL führt auch dann noch zum Ziel, wenn man die Freundlichen URLs verwendet)

In den neueren Versionen von DotNetNuke hat man dann die Suchmaschinenfreundlichen URLs hinzugefügt, da Suchmaschinen nicht gerade über Parameter in der URL erfreut waren und häufig solche Seiten nicht indiziert haben.

Und was nutz der beste Content, wenn Ihn keiner findet – Nichts.

Die gleiche Seite wie im obigen Beispiel hat mit den Suchmaschinenfreundlichen URLs das nachfolgende aussehen bekommen:

http://www.schelian.de/Entwicklung/DotNetNuke/tabid/257/Default.aspx

Nun ist diese URL zwar ohne Parameter, aber wenn man diese URL manuell in einen Browsers eingeben oder sich merken will, dann ist sie auch noch nicht optimal.

Hier würde eine URL wie:

http://www.schelian.de/Entwicklung/DotNetNuke.aspx doch einiges erleichtern.

Und genau das ist das Ergebnis wenn man anstelle der Suchmaschinenfreundlichen URLs die Benutzerfreundlichen URLs verwendet.

Der Hasenfuß dabei ist aber, dass diese schönen URLs nur (bisher wenigstens) funktionieren, solange die Module keine eigenen URL Parameter mehr anfügen. Da bedeutet, die Benutzerfreundlichen URLs enden da wo es um den direkten Link zur Seite geht.

Da auch die Suchmaschinen sicherlich nichts gegen diese Art von URLs haben, würde ich diese Art der URL einfach als freundliche URL bezeichnen, sowohl Suchmaschinen als auch Benutzerfreundlich.

So nun aber mehr dazu, wie man diese Funktion aktivieren kann:

Mann muss DotNetNuke ab Version 4.7.0 installiert haben.

Dann öffnet man die web.config und sucht den Abschnitt friendlyUrl.

Der sieht im Original so aus:

<friendlyUrl
  defaultProvider="DNNFriendlyUrl">
	<providers>
		<clear/>
		<add
		  name="DNNFriendlyUrl"
	 type="DotNetNuke.Services.Url.FriendlyUrl.DNNFriendlyUrlProvider, DotNetNuke.HttpModules"
					includePageName="true"
					regexMatch="[^a-zA-Z0-9 _-]" />
	</providers>
</friendlyUrl>

In diesem Abschnitt muss man dem Provider ein neues Attribut „urlFormat“ wie nachfolgend abgebildet hinzufügen:

<friendlyUrl
  defaultProvider="DNNFriendlyUrl">
	<providers>
		<clear/>
		<add
		  name="DNNFriendlyUrl"
		  type="DotNetNuke.Services.Url.FriendlyUrl.DNNFriendlyUrlProvider, DotNetNuke.HttpModules"
					includePageName="true"
					urlFormat="HumanFriendly"
					regexMatch="[^a-zA-Z0-9 _-]" />
	</providers>
</friendlyUrl>

Für das Attribut urlFormat sind die folgenden beiden Werte gültig:

  • HumanFriendly
  • SpiderFriendly

Zum Schluß sei noch bemerkt, dass die Umstellung auf die Benutzerfreundlichen URLs nicht dazu führt, dass die „alten“ Links nicht mehr gültig sind, sondern die URLs werden auch nach der Umstellung noch auf die „richtigen“ Seiten verweisen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.