Is the functionality of Friendly URL mainly supposed to “hide” things like “=”, “?” and userid’s etc, or can it be used also to rewrite (hide) a URL which automatically gets the appearance of the page’s location in the tree structure?
For an example:
The displayed URL for every page chosen from the menu looks the following – www.nameOfHomepage.com/aboutUs. The page “aboutUs” is placed underneath the start page-node for the entire site (see tree structure further down "The site's startpage").
Another page, which in the tree structure is placed above the main start page, will instead get the following appearance in its URL (because of its different location in the tree structure) – www.nameOfHomepage.com/nameOfDifferentNodeWhichPageIsLocatedUnder/theExternallyLocatedPage.
And the question is, if it’s possible to make some sort of transformation to the URL, without having to move the page to underneath the same node which the rest of the pages (aboutUs etc) of the homepage are located? In order to get the appearance www.nameOfHomepage.com/theExternallyLocatedPage ?
The tree structure looks the following:
Root
|__
| Recycle Bin
|
|__
nameOfDifferentNodeWhichPageIsLocatedUnder
|__
| theExternallyLocatedPage
|
|__
The site’s startpage
|__
| aboutUs
|__
andMorePages
If you move theExternallyLocatedPage downward underneath "The site’s startpage", the problem solves itself. But what to do if you really don’t want to move it, and still have the same “clean” URL as www.nameOfHomepage.com/aboutUs
... /theExternallyLocatedPage ??
I'd just like to add that it should be possible to achieve what Sofie wants by making friendly URL's obey the 'Simple address for this page' property where you can specify a full path rather than the 'Page name in Web address' property where you just specify the page name for Friendly URL's.
You'll see that if you specify /theExternallyLocatedPage in 'Simple Address for this page' then you'll go to that page if you type www.nameOfHomePage.com/theExternallyLocatedPage.
Unfortunately, the displayed URL will be www.nameOfHomePage.com/nameOfDifferentNodeWhichPageIsLocatedUnder/theExternallyLocatedPage - it would be really neat if Friendly URL's could use the 'Simple Address for this page' property when it's specified.
It's simply important in order to be able to keep the same structure of the different pages and its URL throughout the website. There's no logical/good reason to have one page's URL looking like: www.website.com/onePage, while another page's URL looks like: www.website.com/DirectoryUCannotGetRidOf/anotherPage - when there are no differences between onePage and anotherPage. :-) When making differences to the structure for no logical reason, it means that you're taking one step closer to make the development a mess for other developers to come. :-D And we don't want that, do we? ;-)
// Sofie
Then the next logical question is: If there is no difference, why is that page placed outside of the start page structure.
I guess there are good reasons for doing this, but most of the times I've seen this being done, it is to solve some programming problem, and not a structural one. For an example, separating menus and page structure, introducing "system" containers with "Top Menus", "Left Menu" etc. to implement a navigation that is different from the physical page structure.
As I said, there might be good reasones for doing this, but IMHO you are painting yourself into a corner, and will get in trouble somewhere down the line.
The friendly url feature is just one case, but examplifies that the solutions you chose today could be a problem later on. It is of course almost impossible to predict this, so what can you do?
At least, for navigation, my advise is to think twice if you're about to introduce "container" pages, or separate primary navigation from the page hierarchy. The problem can in most cases be solved programatically, and is in most cases more "editor-friendly".
/Steve
Steve,
The area where I see this being useful is for Enterprise sites.
That way you could have 'boilerplate' content held outside each site, but available to all sites in the Enterprise.
You can do it to some extent without using 'Container' pages, but you end up with a bit of a mess without them.
That would mean that you're kind of "injecting" the common structure into some other site structure using code to give it a context?
Guess that is a valid point :-) With the current version of EPiServer there are not many alternatives to this approach if you want to maintain the common structure in one place. However, you have the option to do site-internal content mirroring. That is, you set the common structure as the source, and add channels that point somewhere into the different site structures, effectively copying pages inside the same database. You'd be editing the content one place, and it will replicate to the other sites.
This will of course give you a lot of duplicate pages, and you have to decide if this is a mess that you can live with or not.
Interesting discussion btw.
/Steve
I agree, make it simple.
But is it really a problem the way the URL looks? Most users (about 95%) will not even notice it. The "Friendly URL" is made to get a slightly better ranking at different search engines. It has no practice for humans as I can figure. Look at the "Friendly URL" of this page when will you use it/remember it?
Simple address does though.
In my opinion, "friendly url" make more mess than good to our systems and developers. It has bugs (one fixed in hotfix 1 for 4.61), it's one more type of URL to consider when developing functions (more code to support).
If the goal is to get bettar ranking at search engines it's much more effective to work with pages keywords.
/HAXEN
Root |__ | Recycle Bin | |__ nameOfDifferentNodeWhichPageIsLocatedUnder |__ | theExternallyLocatedPage | |__ The site’s startpage |__ | aboutUs |__ andMorePages
If you move theExternallyLocatedPage downward underneath "The site’s startpage", the problem solves itself. But what to do if you really don’t want to move it, and still have the same “clean” URL as www.nameOfHomepage.com/aboutUs ... /theExternallyLocatedPage ??