Products » Support Forums 

Support Forums

HomeHomeDotNetNuke Modu...DotNetNuke Modu...Url MasterUrl Masterurl masterurl master
Previous
 
Next
New Post
3/13/2010 6:54 AM
 

We have already downloaded your trial version and have been testing that on our demo site & have been able to successfully reconfigure our static links / tabs for eg :from : http://bizkatalyst.com/healthcaresolutions/FINDHEALTHCAREPROVIDERS/Doctor/tabid/64/Default.aspx to
http://bizkatalyst.com/healthcaresolutions/doctor.aspx
 
However what we need to know is whether your product can help us reconfigure the links for our dynamically generated pages (i.e the pages which are thrown up as a result of a search query run on our database...
 
For eg if after reaching our doctor tab, someone searches for a cardiologist and hundreds of names are thrown up in a certain city. Now when he clicks on any one name, the complete details of that doctor are thrown up on a separate page...generated through a query string.
 
For example :  http://bizkatalyst.com/healthcaresolutions/doctor/ctl/viewdoctorforregistered/mid/412.aspx?doc_id=del01%5Cdoc-78
 
We essentially want to replace this with something like
http://bizkatalyst.com/healthcaresolutions/doctor/1589764
 
So that all these pages are also indexed by the google crawlers (as we are told that the crawlers are not able to crawl links with ? and % signs in them).  This is critical for us as we want that people searching for an X doctor in ask4healthcare on google should be directly able to reach the profile page like http://bizkatalyst.com/healthcaresolutions/doctor/1589764
 
This is how it is done at portals like healthgrades for eg if you search for (Doctor Smith Healthgrades) on google, the link to his profile page shows up in google search results directly :http://www.healthgrades.com/directory_search/physician/profiles/dr-md-reports/dr-jeffrey-smith-md-45bb3b1b
 
Hope I have been able to explain this.
 
Shall wait for your revert.

 
New Post
3/13/2010 11:45 PM
 

The simple answer is that the module cannot improve the Urls beyond the example that you gave : http://bizkatalyst.com/healthcaresolutions/doctor/ctl/viewdoctorforregistered/mid/412.aspx?doc_id=del01%5Cdoc-78
 

I assume this Url was generated with the Url Master moduel installed.

If you would like to have Urls like this one:

http://bizkatalyst.com/healthcaresolutions/doctor/1589764
You would have to redo your module code.

Specifically :  change the url for /ctl/viewdoctorforregistered from a specified control to either having the viewdoctorforregistered as the default control for the module, or create a separate module with this control as the default, if that isn't possible.  This will remove the /ctl/viedoctorforregistered and the /mid/412 out of the url.

Doing this action is just a change in the DNN module configuration, and would leave you with

/healthcaresolutions/doctor?doc_id=del01%5cdoc-78

Next, change your doctor id value so that it doesn't include encoded Url characters.  The reason the Url looks like this is because of the url-encoded value in the 'doc_id' value.  If you decode this value, you get del01\doc-78 .  You need to change this value so it doesn't include a backslash ( you could replace it with a hyphen) , and you'll get a Url like this:

/healthcaresolutions/doctor/doc_id/del01-doc--78

The reason it is being appended on the end is because the regex value that filters out items for the friendly url path detects the url-illegal backslash, and doesn't include it in the friendly url path.

Finally, if you want to remove the doc_id value then you cna change your module to look for the qureystring items based on position, rather than key.  Specifically, instead of looking for Request["doc_id"] you can look for the first item in the request.querystring keys collection, and use this as your value.  This would give you a value of

/healthcaresolutions/doctor/del01-doc-78

Note that none of these changes involve the module at all - they are all aimed at changing the way your DNN module is generating Urls to better formulate friendly urls.

If you were to re-write the application to do this, you might as well start including the doctor name in the Url (if that's important) so you get

/healthcaresolutions/doctor/del01-doc-78/dr-smith

Please note that the advice you have been given about search engines not being able to index urls with ? and encoded characters is outdated advice.  You can do a search for somethign commong like ?threadid= or even ?tabid= and you will see millions of indexed Urls.  Search engines can all crawl Urls with querystrings. 

 
New Post
3/13/2010 11:46 PM
 

The simple answer is that the module cannot improve the Urls beyond the example that you gave : http://bizkatalyst.com/healthcaresolutions/doctor/ctl/viewdoctorforregistered/mid/412.aspx?doc_id=del01%5Cdoc-78
 

I assume this Url was generated with the Url Master moduel installed.

If you would like to have Urls like this one:

http://bizkatalyst.com/healthcaresolutions/doctor/1589764
You would have to redo your module code.

Specifically :  change the url for /ctl/viewdoctorforregistered from a specified control to either having the viewdoctorforregistered as the default control for the module, or create a separate module with this control as the default, if that isn't possible.  This will remove the /ctl/viedoctorforregistered and the /mid/412 out of the url.

Doing this action is just a change in the DNN module configuration, and would leave you with

/healthcaresolutions/doctor?doc_id=del01%5cdoc-78

Next, change your doctor id value so that it doesn't include encoded Url characters.  The reason the Url looks like this is because of the url-encoded value in the 'doc_id' value.  If you decode this value, you get del01\doc-78 .  You need to change this value so it doesn't include a backslash ( you could replace it with a hyphen) , and you'll get a Url like this:

/healthcaresolutions/doctor/doc_id/del01-doc--78

The reason it is being appended on the end is because the regex value that filters out items for the friendly url path detects the url-illegal backslash, and doesn't include it in the friendly url path.

Finally, if you want to remove the doc_id value then you cna change your module to look for the qureystring items based on position, rather than key.  Specifically, instead of looking for Request["doc_id"] you can look for the first item in the request.querystring keys collection, and use this as your value.  This would give you a value of

/healthcaresolutions/doctor/del01-doc-78

Note that none of these changes involve the module at all - they are all aimed at changing the way your DNN module is generating Urls to better formulate friendly urls.

If you were to re-write the application to do this, you might as well start including the doctor name in the Url (if that's important) so you get

/healthcaresolutions/doctor/del01-doc-78/dr-smith

Please note that the advice you have been given about search engines not being able to index urls with ? and encoded characters is outdated advice.  You can do a search for somethign commong like ?threadid= or even ?tabid= and you will see millions of indexed Urls.  Search engines can all crawl Urls with querystrings. 

 
New Post
3/20/2010 8:10 AM
 

Hi bruce,

Thanks for this detailed response, really appreciate it. We tried following your advice i.e.

"Specifically :  change the url for /ctl/viewdoctorforregistered from a specified control to either having the viewdoctorforregistered as the default control for the module, or create a separate module with this control as the default, if that isn't possible.  This will remove the /ctl/viedoctorforregistered and the /mid/412 out of the url."

however we are stuck since we are not able to figure out how to configure a default control for a module.  

Also regarding your other advice, i.e.

"Finally, if you want to remove the doc_id value then you cna change your module to look for the qureystring items based on position, rather than key.  Specifically, instead of looking for Request["doc_id"] you can look for the first item in the request.querystring keys collection, and use this as your value. "

how do we pass the value based on position from one page to another page in DNN, since the first page is part of a module and the second page is a user control.

We shallwait for your revert before proceeding further.

Thanks

 

 
New Post
3/23/2010 12:12 AM
 

With regards to the first question, the default control for a module is the one marked as 'view' in the module type.

This blog entry covers this : http://www.ifinity.com.au/Blog/EntryId/48/Designing-Structuring-and-Architecting-DotNetNuke-reg-Modules

With regards to the second question ; you can experiment by requesting any page with the Url that you want.  Then, in your vs debugger, inspect the Request.QueryString object.  If you iterate through the keys, you will find that every odd numbered parameter in the list will be a key, and every even numbered will be a value.

So /first/second/third/fourth as a url will look like this in the querystring items collection:

item 0 key = first

item 0 value = second

item 1 key = third

item 1 value = fourth

So, instead of looking for a specific querystring value based on the known key, use the position to find things instead.  You'll have to handle cases where the order has been messed up and show errors or redirects, but you shoudl be able to figure it out.

 
Previous
 
Next
HomeHomeDotNetNuke Modu...DotNetNuke Modu...Url MasterUrl Masterurl masterurl master


Support Guidelines.. Please read before posting

To get support on iFinity products and services, please search the forums for the the answer to the problem you are seeking. If you cannot find a solution, post a question in the relevant forum.   Ensure that you specify the relevant versions of the problem, and the actual error message or a detailed description of the problem.    You will need to register with this site to post on the forum.  If you have a Microsoft Live (Hotmail/Passport) account you can use that.  If you have a Open Id account you can use that.  If you neither of these, you will need to register a user Id and password.

Please note : If you are posting a new thread for the Url Master module, please include the following information where applicable:

- Url Master version

- DotNetNuke version

- Example Url where possible

- If there is an error, please post the full error text and/or stack trace (from the DotNetNuke event log).