I am currently helping redesign a poorly built website that suffered with a case of PHP spaghetti.
In an attempt to structure the site I have the following tree (apologies for the length):
http://www.domain.co.uk - Root Directory - / - /our-service - /our-service/pricing - /our-service/mobile - /search - /search/results - /search/results/<page_num> - /resources/announcements - /resources/competitions - /resources/email-archive/<email_num> - /resources/sitemap - /contact - /contact/advertise - /contact/support - /legal/terms - /legal/privacy - /<username> - /<username>/reviews - /<username>/reviews/<review_id> http://my.domain.co.uk - User Account Area - /instructor - /instructor/account - /instructor/account/activate/<hash> - /instructor/account/password - /instructor/account/email - /instructor/account/contact - /instructor/account/status - /instructor/account/close - /instructor/billing - /instructor/reviews - /instructor/reviews/disputes - /instructor/reviews/ratings - /student/account - /student/account/activate/<hash> - /student/account/password - /student/account/email - /student/account/contact - /student/account/status - /student/review - /student/review/past - /student/theory - /student/theory/new - /student/theory/results - /logout
1) My first real question is if anyone is able to spot anything that may cause an issue further down the line using this structure? Obviously
/<usernames> will be checked against a reserved list to prevent any issues in that sense.
2) In terms of error handling I have seen several methods used on websites, one being url based. For example, an error with a username/password could be displayed using
/login?error=mismatch. Is this a better approach than doing things invisibly behind the scenes or is there no real advantage?
3) Finally, the site has two parts to its registration (student / instructor) with the student having a single page to complete, and the instructor a multi-page form. I can't figure what the best method would be to implement it into this structure.