Remove aspx extension from SharePoint pages - asp.net

I would like to remove the ".aspx" extension from pages in a SharePoint web application. This can be done with URL rewriting in IIS web applications, but I cannot find any way to achieve this is SharePoint site pages.
e.g. abcsite/pages/default.aspx should be abcsite/pages/default.

I don't know much about Sharepoint but you can use Url Routing with ASP.NET as an alternative to IIS Rewrite Modules.
One advantage being that forms post back to the correct URL which I prefer (without having to reverse map using IIS Url Rewriting)
Note: Available from .NET 4.0

I am not sure which version of sherepoint you are using.
You can use IIS URL Rewrite 2.0 module
Please have a look at these example which has setp by step instructions
IIS7 URL Rewrite module
SharePoint 2010 with IIS URL Rewrite 2.0
URL Routing with ASP.NET 4.0

Related

How does ASP.NET WebPages implement extensionless URLs?

I'd like to implement the same thing for my own build providers.
I'm talking about an ASP.NET Webpages application, in Visual Studio: File > New Website > ASP.NET Website (Razor)
Works with Cassini, so it's not an IIS Express thing.
I found it, it's an HTTP module, System.Web.WebPages.WebPageHttpModule
This module checks if the file exists, and if it does it creates a handler from that file and remaps the request to that handler.
Razor is a templating engine. It has nothing to do with URLs. They are handled by the ASP.NET routing engine. Extensionless URLs are supported starting from IIS 7.0. In IIS 6.0 you need to associate the aspnet_isapi extension with all incoming requests if you want to support extensionless urls.
I found this information in regard to the "Routing" that you might find handy if you are building an ASP.Net WebPages site w/o MVC3 and wanted to mention it.
Creating More Readable and Searchable URLs - About Routing
HTH

How to create a blog in ASP.NET and not ASP.NET MVC

I have created a blog application with ASP.NET MVC and MSSQL. I must say, i really enjoyed the process of creating an application with ASP.NET MVC. Clean URLS(with URL routing), No view States and so on.
BUT i was wondering how would this would have been done if i choose web-form style coding? will the aspx would be created in the fly as i create a article.(take this url for ex: http://weblogs.asp.net/scottgu/archive/2010/10/06/announcing-nupack-asp-net-mvc-3-beta-and-webmatrix-beta-2.aspx) though the URL is not clean but still makes sense. if yes then what about its corresponding cs file? if no how is the URL so clean?
Would be great if someone throw some light on how it is done in ASP.NET.
Thank you, Faraaz.
If your using .NET 4, you can make use of MapPageRoute to accomplish the clean URL's with regular Web Forms.
routes.MapPageRoute("MySuperCleanRoute", "some/clean/url", "~/ActualPage.aspx");
With the addition of MapPageRoute, you no longer have the feeling "I should use ASP.NET MVC because i want clean URL's".
Choose ASP.NET MVC if you like the pattern. If your used to Web Forms, use it - and use MapPageRoute to achieve clean URL's (or use a URL Rewriting module if <= .NET 4)
A blog in ASP .NET would have been done in much the same way. The idea is to use one file and URL rewriting. IIS7 has URL rewriting built in but for IIS6 you can use something like ISAPI_Rewrite to handle .htaccess style files (which is what Apache uses).
ASP .NET MVC handles all this for you in its routing but you can do it yourself using a URL rewriting tool. The difference is that for MVC, the application handles the rewriting but ISAPI_Rewrite, IIS Rewriting are done by the server. This can change a URL like http://mysite.com/something/other to http://mysite.com/file.asp?p1=something&p2=other.
The second link is only internal to the server (it doesn't actually change the URL in the user's address bar). In the case of a URL like on Scott's blog, you could store the 'announcing-nupack-asp...' bit in a database as part of the article row so your blog article page has something to look for. The files don't actually exist on the server but the rewriting passes all requests to an existing file with parameters.
Note that this technique is common for lots of different sites - not just blogs. Notice the Stack Overflow URL, Twitter URLs, etc.
MSDN has an old article on URL Rewriting in ASP .NET, along with some examples of filters you can use.
See IIS URL Rewrite Module
You can use the URL Rewriting that is in asp.net MVC with WebForms if you are using .Net Framework 3.5 SP1 (if you don't have access to .Net 4)
Here's an MSDN magazine article explaning...

Having URL without .aspx extension

I noticed a lot of ASP .Net sites does not have the URL ending with ".aspx".
An example would be:
- https://stackoverflow.com/questions
Did they create a Questions folder and put a Default.aspx inside?
In that case, wouldn't there be A LOT of default.aspx in many folders which is hard to maintain (even though it is user-friendly)?
Thanks y'all.
StackOverflow is written using ASP.NET MVC. The MVC framework does not use .aspx files.
The way it works internally is by using routing tables - see an overview here.
You can also do this with ASP.NET and .aspx files or you can use URL rewriting. You can read about the differences here.
You can refer to any URL rewriter or a routing technique for that. If you look at the new AS{.NET MVC, it works on that model only.
You can use Url Rewriter to remove extensions from the urls of your website.
ASP.net has a routing framework you can use even if you are not using ASP.net MVC
Official documentation: http://msdn.microsoft.com/en-us/library/cc668201.aspx
Also as previously stated ASP.net MVC works like this out of the box and you can also use URL Rewriting
With ASP.NET 4.0, you get the benefits of URL routing (nice, clean URLs) with ASP.NET webforms, too — see:
Routing for Web Forms in ASP.NET 4.0
URL Routing with ASP.NET 4 Web Forms (VS 2010 and .NET 4.0 Series)
Basically, what you do is define a route like
/question/{id} or /question/{title}
and you then define what ASPX page this is being routed to. Quite nifty!

ASP.NET web pages without aspx file extension

What is best solution to serve ASP.NET web pages without aspx extension? I want to make http://www.mydomain.com/mypage instead of http://www.mydomain.com/mypage.aspx
I use .NET 2.0 and IIS6
If you can upgrade to .Net 4.0,which got a built-in URL Routing feature to do it for you easily,read this article by Scott Mitchel
otherwise if you don't want to move to .net 4.0,read this article by Scott Gu
Url rewriting.
For .NET there are already modules available like this one.
For IIS 6.0 you can use ionics ISAPI URL Rewrite filter http://iirf.codeplex.com/ for extention less urls

hide page extension in url

How can i hide page extension (for ex .aspx , .php) from url of the page
I think you should use IIS URL Rewriter module.
http://learn.iis.net/page.aspx/460/using-the-url-rewrite-module/
Here you have a good article about how to achive friendly urls on asp net
http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx
It covers 4 options
Use Request.PathInfo Parameters Instead of QueryStrings
Using an HttpModule to Perform URL Rewriting
Using an HttpModule to Perform Extension-Less URL Rewriting with IIS7
ISAPIRewrite to enable Extension-less URL Rewriting for IIS5 and IIS6
If you have IIS6 server, you have to do few modification in order to ASP.NET ISAPI catch extension-less url. In IIS7, use Integrated pipeline application pool. Then with some URL rewriter or mapper (ASP.NET Routing, UrlRewriting.NET,...) configure your urls to physical files or MVC controller/action.

Resources