Asp.net / Dot Net Nuke rewrite url - dotnetnuke

i'm using dot net nuke
and i need to rewrite my website urls
for example: from products.aspx to products-computers/home.aspx
I've tried modifying siteurls.config using this rule
<LookFor>.*/products.aspx</LookFor> <SendTo>~/products-computers/home.aspx</SendTo>
it doesn't work.
Please help!

If you are trying to change the URLs of your website, you will need to use a tool like URLMaster from Ifinity to get the ultimate flexibility
What you are doing with the siteurls.config appears to be is define that if someone requests /products.aspx that instead of loading a page called products.aspx, they load a page with a path (defined in DNN) as /products-computers/home.aspx
That means that you need to have a parent page called Products-Computers and a child page under there called Home.

I used to edit siteurls.config and it worked for me - you should be careful with syntax though. What I don't like re siteurls.config is that you're ending up on right page but with wrong address in address bar of the browser. So my preference is this solution that I investigated & tested personally and it was confirmed by stackoverflow community member as well:
redirecting old site pages to single page on dnn portal

Related

Referencing Another App

What is the best way to reference another app in the visual query designer?
I am using the blog app and I created a second app to list the tags that are used in the main blog app. This way when the app goes to a detail page of a post, I can still have the tags listed on the website without the view changing automatically. I set up my blog tags app with a visual query that list all of the tags used in the main app. Everything was working fine in development.
The problem that I have run into is that when I move the app to a production site the AppId was different than the one I was currently using and development. Now, the tags app is showing an error and I am not able to get into the settings to change the app ID of the visual query to the proper one in order to get the information needed. Is there a better way that I should be handling this?
This sounds like the right way to do it - your main issues is getting into the admin-ui when the template you have shows an error.
I suggest that you quickly rename your current template (so it's not used till you fix the bug) and create an empty template with the original name. This way you can go to the normal settings.
Another option is to switch into dnn-edit-mode, and use the black-dnn buttons to get to app-admin.

Replace Space in DNN Friendly URLs

I'm working on a site running DNN 7, and I'm trying to format my URLs. In my web.config file I changed the format to HumanFriendly URLs like so:
<add name="iFinity.FriendlyUrl" type="iFinity.DNN.Modules.FriendlyUrl.DNNFriendlyUrlProvider,
iFinity.FriendlyUrlProvider" includePageName="true" regexMatch="[^\+a-zA-Z0-9 _-]"
urlFormat="HumanFriendly" redirectUnfriendly="true" doNotRedirect="SearchResults;"
checkForDupUrls="true" forceLowerCase="true" redirectWrongCase="false" replaceSpaceWith="-"
logCacheMessages="false" pageExtensionUsage="never" />
The rewrite is working fine, except one problem. On pages that have a space, for example we have a page titled, "Who We Are" I want the URL to be who-we-are, and the URL is generating as whoweare. What do I need to add in order to change that? I've been digging all morning and can't find anything about it.
Thank you in advance for any help, it's much appreciated!
The iFinity Friendly URL functionality has been merged into the DNN core and is no longer updated.
http://www.ifinity.com.au/2013/07/22/DNN_71_and_Url_Master
The above post explains how to transition to the new provider.
I uninstalled the iFinity controll, and then used instructions from this page to change the space character:
http://www.christoc.com/Tutorials/All-Tutorials/aid/6

Redirect script making image referencing impossible

I have a site that I run off the back of another site. In order to save on hosting etc. the domain points to a script and depending on the url that is in the address bar it redirects accordingly to a subfolder which holds the separate sites. I am happy with this and it works a treat. So when it hits url 1 it goes to "www.domain1.com/url1/Home/Index" and when number 2 is typed in it goes to "www.domain2.com/url2/Home/Index". url1 and url2 being the subfolders.
The problem comes when i am developing another site that is going off the back of the original. i have the site developed in vs and am about to release and obviously all of the image urls, script urls etc are completely wrong as they don't take into account the subfolder within the site. they all used /images/site/image1.jpg etc. this means that they are looking from the root and not from my subfolder url.
is there a simple way of implementing this so that i can develop it using vs and not have to change every image reference every time i release code?
i realise this probably has an incredibly easy answer to my problem - i just can't seem to find anything that fits.
Any suggestions?
slight addition to this - when my site loads it loads to the default page - and therefore when i use ../images/site etc this works when the url contains Home/Index, but not when it hits it on the default url which doesn't include the folder and page qualification.
Just noticed this was left unanswered. When referencing in MVC you need to use the tilde (~) to reference the route of the application. So in my instance i have two sites and using the tilde notation if referenced the route of the application, of which each were specified as different routes.

how to remove sitemap.aspx in dnn6

i need to remove sitemap.aspx from the site.
In dnn 6,there is a sitemap.aspx page that simply shows an xml sitemap.i cannot edit/remove that file.so i need to remove that page and recreate it with a simple html sitemap.
NOTE:the page name should be sitemap.aspx
Sitemap.aspx isn't a physical page you can delete.
You can, however, rename it to something else. It's in your web.config file, under the 'handlers' section. Just look for sitemap.aspx, and change it to something else, like 'searchenginesitemap.aspx'. Don't forget to update your robots.txt file to point to the new sitemap name, or go to the various webmaster console pages in search engines and advise them of the new location.
The sitemap.aspx is used to create the xml sitemap for search engines. By changing this you break this functionality and limit the search-ability of your site.
That being said, in Host Settings->Advance Settings you could setup a new Friendly Url that would match .*/sitemap.aspx to another url/page on your site.
I have long stopped using DNN's native sitemap.aspx... ITS BUGGY!... and here is how i found out.
I generated my own "CLEAN" sitemap.xml using a free 3rd party tool. And uploaded it to the root of my DNN website.... re-submitted the the domainname.com/sitemap.xml to Google via web master tools and as a result we now get a 1ST PAGE and TOP 10 RANKING.
Mostly in the top 5... where as before using DNN's native sitemap.aspx we would get random errors which was pretty ANNOYING. Plus we got very bad Google Page Rank, But those were just my findings of better results. Note:I also place the location of the sitemap within the robots.txt file...
Although i will admit that it is extremely ANNOYING that you cannot just edit the DNN Sitemap url. This creates an issue if you've built the the site on a test server and then migrate over to production... your DNN Sitemap url only reads the firs portal alias from when you first developed the site.
Anyway, this was my findings... others may vary... just sharing.

Is there any way to handle silverlight deep linking without '#' showing in the url?

I want to have two separate interfaces to my website, one that is silverlight, and one that is normal html for people who don't have Silverlight, and for search engines. They would have exactly the same content, the Silverlight one would just be a richer experience.
If someone with Silverlight copies the URL to a certain page, it will have a '#' in it (app#page1). If they then want to link to that page on their blog or something, it will have the # in it, and a search engine probably wouldn't consider it as a separate page from app#page2.
Is there any way to make the navigation from within Silverlight update the URL with a '/' instead of a '#', without actually loading a separate page? This way the URLs in the address bar appear like a normal websites' URLs ('app/page1', 'app/page2').
Is there any way to make the navigation from within Silverlight update the URL with a '/' instead of a '#', without actually loading a separate page? This way the URLs in the address bar appear like a normal websites' URLs ('app/page1', 'app/page2').
Unfortunately, no. The reason that Silverlight navigation URLs use # is that you can move around within a page by moving to an anchor location. If you used a full URL with '/' separators, it would cause the browser to navigate to a new page, which would reload your Silverlight application. This would basically unload your Silverlight application, and load a new one with the new URL.
The reason they use the # sign is because this is interpreted by the browser as moving to a location in the page, otherwise would reload the page.
As far as search engine implications I'm not sure either way. Maybe someone more experienced with SEO can chime in on that.
However I'm sure you can get the behavior you're looking for, just may take some trickiness on your end. Another way pass information to the Silverlight client runtime is using Query String parameters. You can access query string params using the System.Windows.Browser.HtmlPage.Document.QueryString collection, you could then load the Page or User control with the content you desire based on that parameter.
As far as mimicking a folder structure using '/'s. I know there are ways to do this using custom web server settings / HTTPModules. I assume you're using IIS/ASP.Net, I would look into this from Guthrie:
http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx
Takes a bit of hackery, but if you're really set on doing it I'm sure you could. You will also face the things the above poster mentioned, if you attempt to do use the same logic during a session. This may work though for just the deep linking aspect you're looking for.

Resources