Guess you could do it with .net macro, so for the page check if umbracoRedirect property has been set get the target document get its umbracoUrlAlias property and redirect to that. Actually thinking about it that wont work as the redirect will probably already have happened so you may need to create a faux umbracoRedirect property and set that ensuring actual umbracoRedirect property has not been set.
As I understand the order of events, the umbracoRedirect simply takes the built-in ID of the page to go to, which doesn't care about the url of the target page. That means you can move, rename, or change over-ride the url of the page and the redirect will still work. Then, once the target of the umbracoRedirect page loads it determines its own url, which will be determined by the umbracoUrlAlias that over-rides the built-in url for the page that umbraco would normally use.
If you give it a try let us know how it works out in practice.
I would like for it, so that folder1/folder1a/news.aspx was in the root node, that I can archive with umbUrlAlias. However, when visiting folder2/redirect2news.aspx I would like for it to use the umbUrlAlias of news.aspx, instead of the actual path.
Thanks for the extra details. That will be a problem since the umbracoUrlAlias does not change the url of the page but simply adds more urls that the page will respond to.
If you were to add the umbracoUrlAlias property to your /folder1/foldera/news.aspx page and give it the alias of 'news' you would be able to access the news page at its default url (http://localhost/folder1/folder1a/news.aspx) and also at its alias url (http://localhost/news.aspx).
The real url for the page hasn't been changed by umbracoUrlAlias so when you redirect a different page to the news page it will show the default url with all the folders rather than the shortened, alternative url alias.
This makes sense because you can have multiple aliases to a page and umbraco would never be able to know what url to use if not its default url.
In your situation I would create a "pointer" document Type that has only an umbracoInternalRedirectId property and put it in your content tree. For instance, you'd have a 'news' page in the root of your site that was a "pointer" to the real news page. But because it uses the umbracoInternalRedirectId alias rather than umbracoRedirect the url won't change when the page is visited. Your redirect from the /folder2/redirect2news.aspx page would use an umbracoRedirect to the news pointer page at /news.aspx.
Or, you could be clever with URLrewriting or a custom not-found-handler in umbraco.
Using umbracoRedirect to redirect to node with umbracoUrlAlias
Is it possible to have 1 node with an umbracoRedirect content picker, redirect to another nodes umbracoUrlAlias?
I've got quite the insane structure going, and it would be a much neater solution if I could.
An,
Guess you could do it with .net macro, so for the page check if umbracoRedirect property has been set get the target document get its umbracoUrlAlias property and redirect to that. Actually thinking about it that wont work as the redirect will probably already have happened so you may need to create a faux umbracoRedirect property and set that ensuring actual umbracoRedirect property has not been set.
Regards
Ismail
I haven't tried it but I think it should work.
As I understand the order of events, the umbracoRedirect simply takes the built-in ID of the page to go to, which doesn't care about the url of the target page. That means you can move, rename, or change over-ride the url of the page and the redirect will still work. Then, once the target of the umbracoRedirect page loads it determines its own url, which will be determined by the umbracoUrlAlias that over-rides the built-in url for the page that umbraco would normally use.
If you give it a try let us know how it works out in practice.
cheers,
doug.
Hi Doug, I don't understand :(
Let me go give it a try and I'll get back to you with a conclusive answer.
cheers,
doug.
Ismail, I've thought about the same thing. Doing a simple macro, that takes the ID from a content picker, and redirect to that urlalias.
Thank you Doug!
Just tried it and it works perfectly.
Here's what I did...
1. Added a two properties to my document type:
- - Name: Redirect to this page
- - Alias: umbracoRedirect
- - Datatype: Content Picker
- - Name: Override URL
- - Alias: umbracoUrlName
- - Datatype: Textstring
2. Set the umbracoRedirect to point to a page on my site (save and publish the page)
3. Set the umbracoUrlName field to "something.aspx" on the page that the umbracoRedirect points (save and publish the page)
4. When I visited the page with the umbracoRedirect I was sent to the page I expected to be sent to, and that page's url was "something.aspx".
It worked just as it should.
cheers,
doug.
Hi Doug,
What you described works as it should, so thank you for doing the test and telling about it!
However, umbracoUrlName just changes the name of the file, It does not allow me to change the path of the file.
What I'm trying to archive is the following.
frontpage.aspx
folder1
- folder1a
- - news.aspx
folder2
- redirect2news.aspx
I would like for it, so that folder1/folder1a/news.aspx was in the root node, that I can archive with umbUrlAlias. However, when visiting folder2/redirect2news.aspx I would like for it to use the umbUrlAlias of news.aspx, instead of the actual path.
Thanks for the extra details. That will be a problem since the umbracoUrlAlias does not change the url of the page but simply adds more urls that the page will respond to.
If you were to add the umbracoUrlAlias property to your /folder1/foldera/news.aspx page and give it the alias of 'news' you would be able to access the news page at its default url (http://localhost/folder1/folder1a/news.aspx) and also at its alias url (http://localhost/news.aspx).
The real url for the page hasn't been changed by umbracoUrlAlias so when you redirect a different page to the news page it will show the default url with all the folders rather than the shortened, alternative url alias.
This makes sense because you can have multiple aliases to a page and umbraco would never be able to know what url to use if not its default url.
In your situation I would create a "pointer" document Type that has only an umbracoInternalRedirectId property and put it in your content tree. For instance, you'd have a 'news' page in the root of your site that was a "pointer" to the real news page. But because it uses the umbracoInternalRedirectId alias rather than umbracoRedirect the url won't change when the page is visited. Your redirect from the /folder2/redirect2news.aspx page would use an umbracoRedirect to the news pointer page at /news.aspx.
Or, you could be clever with URLrewriting or a custom not-found-handler in umbraco.
cheers,
doug.
is working on a reply...