Host website one webfolder down - url

I want my site to be hosted like this:
mysite.com/en/default.aspx
mysite.com/en-gb/default.aspx
mysite.com/de-ch/default.aspx
Originally I just hosted the site in application folders in IIS for each culture I support and everything was fine. I had a separate application in the root which forwarded the user to the appropriate culture. This was all grand.
However, now we're going to host with Azure and I need to get my site to fit into one web role (for those not familiar with Azure, just think of it as me only being able to host the website once - so no application folders). To this end, my site correctly collects the webfolder for the culture and sets the threading appropriately, all this is fine. My problem is that now as far as IIS is concerned the page 'default.aspx' does not exist in the folder 'en-gb'. That folder doesn't really exist. I need to get my site to ignore that first webfolder when it considers what content to get.
It's an interesting one, I suspect my solution lies in URL rewriting. Does anyone have any advice on this?
Thanks for the help!

Well I have found the answer.
It turns out that a web role is capable of much more. I understood that it was a web site running under a virtual machine, but that virtual machine could be torn down and moved at any point. However there is a facility to control what is going on in IIS on that virtual machine within your project. By editing your ServiceDefinition.csdef file you can add virtual applications and virtual directories. More details here:
http://www.dotnettwitter.com/2012/03/publishing-multiple-sites-sub-sites.html
I didn't need to use any fancy URL rewriting. I now have several sites running under one web role.
Well... I will do once I figure out what is stopping my main site working under Azure, but this question is answered.

Related

ASP.NET MVC website NOT in virtual directory

I have deployed three mvc pages to my server as virtual directories using IIS (which there are plenty of tutorials for). I need one of the apps to run when the base URL is requested. So, for example, I have a Help app which can currently be accessed via help.contoso.com/help but I want that app to run when a user simply goes to help.contoso.com instead. I gather there is some sort of redirect option but can't find an example for this type of request anywhere (they're all way more complicated and don't address my simple need). I also think there should be a way to just host the app as the 'root' web 'page' but can't find anything around that either...

How to run asp.net application without exposing the virtualdir in the URL. Like stackoverflow.com does?

How to run asp.net application without exposing the virtual directory in the URL. Like stackoverflow.com does?
Usually when you deploy your ASP.NET MVC application, you create a virtual directory on IIS and point users to the virtual directory. E.g. http://MyDomain.com/MyApp. However, StackOverflow appears without the virtual directory being exposed in the URL. How is this done? URL rewriting or other configuration techniques ?
You do not have to create a virtual directory, you can create an entire new site in IIS. From IIS manager, right click the sites folder listed under your server (IIS 7 or higher. Also available in IIS6 but views/click locations are different). Then select New Website. This brings up the following window in which you can specify the location for the website content, host header information (what domain name to respond to), port information (eg 80), app pool, etc.
By doing this, you can host multiple domains on a single IIS server. Note that if they are all sharing port 80, you have to specify a host name so that IIS knows how to handle multiple sites on a single port. If you do not specify a host name, only one of the websites will be active, the rest will be in a stop state.
You don't have to create a virtual directory. There's a "Default Site", which will load directly under the domain. I can't speak for StackOverflow, but given that they're probably load-balancing with multiple servers already, it's highly unlikely that they're running anything but this site on the web server.

How to run Wordpress with MVC app as virtual on Azure

I'm wondering how to run a Wordpress and virtual MVC application under the WP on Azure. I found a lot of articles about this but it is not working and Azure SDK is changing all the time, there is no actual informations.
Am I able to connect to the Azure Web Role IIS server remotely?
If you have any questions, please ask before answering.
Update by Jim O'Neil comment
Yes I mean ASP.NET MVC. "Not working" means taht WP on Azure by this and ASP.NET MVC app works separatelly but together doeasn't. When I try add ASP .NET MVC as VirtualApplication by this tutrial VM on Azure is always in Busy state.
I need have an WP deployed on my domain example.com and ASP.NET MVC app at example.com/mvcapp. This should work on the Azure platform and could be reached by Virtual application feature of IIS. Then I hope that the Azure Web role is usable for this.
Do you have any idea?
If you really want to run wordpress website as www.example.com and ASP.NET MVC app as www.example.com/mvcapp then you could need to be little more creative to get it working. It is a doable task but need good understanding of Windows Azure platform, how Web Role works as well as PHP/WordPress knowledge.
I can point out some ideas on how you could do it but you would need to venture out to try and test. What you really need to create a ASP.NET Web Role with PHP support and have Wordpress configured to it. This could be done at runtime or you can put together worldpress along with the PHP itself so when you deploy your application whole wordpress is configured as package. Now in the same web role you add virtual diurectory and have MVC app running as application there.
Keep in mind that whole web role will have one single web.config so you would need to make it work with both ASP.NET PHP application and then MVC application. Tough task to handle these two and will take time to put together.
The other easier option is to have PHP running inside a ASP.NET MVC application and in the PHP folder setup your Wordpress application. This setup is easily configurable but it will change the location for wordpress and MVC app other way around.
Overall I really think you should rethink what you really want at the last because your objective just does not match with a need to have wordpress and ASP.NET MVC running together. If you just want to try for experiment, it sure is a great project and make you learn a lot.
This question is asked earlier # SO also but had same response i.e why?
I am not sure about on azure, but on IIS7 we have WP and the URL Rewriter setup as the default website and then deploy asp.net and ASP apps to virtual directories and turn off the URL Rewriter in those subdirectories. Works beautifully. Downside is that PHP runs like a dog on IIS compared to ASP/ASP.net. We are switching to using WP on LAMP and then continuing to run our ASP/.net apps on IIS7. Downside is that the WP after switch over may effect our SEO a little. IIS is www and WP will be ww3.
You might check your URL Rewrite rules if any.
You can create a website in Azure using a wordpress template VM.
You can also use http://wordpress.brandoo.pl/project/ which has an image available in Azure, this means you can use a SQL database rather than a MYSQL database which may help.
You can have one VM being your MVC app pointing to www.mydomain.com and you could have the worpress in a separate VM with say blog.mydomain.com
This would make maintenance easier I think

Hide _layouts path in a web application deployed on SharePoint 2007

We are building a new web application that needs to run inside the SP Context for authentication. Unfortunately the person logged into the machine is not necessarily the person logged into SharePoint. I could not figure out a way to detect who was logged into SharePoint from an application outside of SharePoint. So, the solution is to deploy the application to the LAYOUTS folder within the 12 hive. This works great in that I can use a custom master page, go crazy with fancy user controls, AND be within the SP Context. I also locked down access to the page by detecting which web app the user was on so no one can access it from a different SP web app.
The problem is the URL. It is ugly. I want the url to be something like this: www.sitename.com/ instead of www.sitename.com/_layouts/appname/
I tried created creating a new web site within IIS that points directly to the app in the LAYOUTS folder. That failed because I was no longer within the SP Context.
I also tried an IIS redirect which worked, but the URL still switched over to the ugly URL.
Does anyone have any ideas for this?
My orginal problem was not being able to detect the currently logged in user for SharePoint outside of SP, so if you have a solution to that problem, that would be great too.
Your best option is to rewrite the URLs and HTML with a proxy. Apache with the mod_rewrite and mod_html_rewrite options are an option. However this kind of setup is not trivial.
You can use URL rewriting in IIS.

Can I store a clients website within my website

I'm working on a clients pre-existing web site. I would like to take the solution they sent me and host it within my web site so that I can make changes to it and the client can see them without modifying their current live version without their approval.
It would be nice to store on a sub domain. How do I contain the web site within a folder so that it doesn't conflict with my web.config and other files?
All you are talking about is taking their files and hosting them on a domain of your choice ... this is generally deemed a Dev Site. Nothing fancy here, just create a IIS directory or application for the client's version of software on your server machine and map your domain to it via DNS settings.
Here is an article on creating sub domains
http://forums.asp.net/t/874598.aspx

Resources