Here's a question we're debating...
Permalink
I'm about to make an architecture decision that seems like it could have really negative side effects and I wanted to give you guys a chance to weigh in.
The problem:
Our Starter and Advanced hosting plans are all managed through an internal version of what I would call our MSM. It does some cool stuff, one of them being giving site owners an extra tab in their dashboard called "Server Support". From within this tab you can park a domain at your server. Today when that happens we tell our DNS server about the domain you're parking and we set redirect to base url to false.
This means that:
mysite.c5host.com/index.php/login works (and is how we encourage people to edit their site)
and mysite.com/index.php/login would also work... although.... there are few spots where this falls apart in the editing experience and you end up back at mysite.c5host.com but not logged in.
This is unfortunate because people think our editing experience is buggy. This is also unfortunate because if someone were to install beefier add-ons that required user interaction (say Discussions Forums) on a starter or advanced plan they're hosting with us, their site visitors would have a funky (if even possible) experience using the forums. Bad.
so there are some potential solutions:
1) Set base URL to the domain they're parking. We're already doing edits to config files from php so that fear while legit is already mitigated. The biggest concern (Andy's concern in this case) is that people will park a domain at the dashboard without first pointing it to our name servers or setting up an A record and then their site is GONE. Dashboard gone, whole deal unusable. I'm sure that'll happen from time to time, but my prospective is I'd rather hear about this, as I can imagine lots of red "ARE YOU SURE?!?!" messaging before we do it.. and hearing that "concrete5 seems to just dump me out of edit mode now that i've paid for hosting" is not a happy thing.
2) Get rid of base url. Andy believes that base url is mostly useless anyway at this point. We should find whatever it is that is redirecting people to base in the editing flow and kill it. If you login tohttp://www.sitename.com you should stay onhttp://www.sitename.com and not be redirected to sitename.com
I think this sounds punky for several reasons... I think it sounds deceptively complicated to actually do.. (at this point "just cleaning up a few spots" sounds like thousands of dollars of work to me). I also think that generally sites are supposed to resolve to one web address for SEO purposes, so we should default to that behavior (As we do today). Moreover I think this feels like one of those issues that has a lot of ramifications we're not seeing at a glance with marketplace add-ons or work that has happened outside of our awareness.
So. Any thoughts on this one?
The problem:
Our Starter and Advanced hosting plans are all managed through an internal version of what I would call our MSM. It does some cool stuff, one of them being giving site owners an extra tab in their dashboard called "Server Support". From within this tab you can park a domain at your server. Today when that happens we tell our DNS server about the domain you're parking and we set redirect to base url to false.
This means that:
mysite.c5host.com/index.php/login works (and is how we encourage people to edit their site)
and mysite.com/index.php/login would also work... although.... there are few spots where this falls apart in the editing experience and you end up back at mysite.c5host.com but not logged in.
This is unfortunate because people think our editing experience is buggy. This is also unfortunate because if someone were to install beefier add-ons that required user interaction (say Discussions Forums) on a starter or advanced plan they're hosting with us, their site visitors would have a funky (if even possible) experience using the forums. Bad.
so there are some potential solutions:
1) Set base URL to the domain they're parking. We're already doing edits to config files from php so that fear while legit is already mitigated. The biggest concern (Andy's concern in this case) is that people will park a domain at the dashboard without first pointing it to our name servers or setting up an A record and then their site is GONE. Dashboard gone, whole deal unusable. I'm sure that'll happen from time to time, but my prospective is I'd rather hear about this, as I can imagine lots of red "ARE YOU SURE?!?!" messaging before we do it.. and hearing that "concrete5 seems to just dump me out of edit mode now that i've paid for hosting" is not a happy thing.
2) Get rid of base url. Andy believes that base url is mostly useless anyway at this point. We should find whatever it is that is redirecting people to base in the editing flow and kill it. If you login tohttp://www.sitename.com you should stay onhttp://www.sitename.com and not be redirected to sitename.com
I think this sounds punky for several reasons... I think it sounds deceptively complicated to actually do.. (at this point "just cleaning up a few spots" sounds like thousands of dollars of work to me). I also think that generally sites are supposed to resolve to one web address for SEO purposes, so we should default to that behavior (As we do today). Moreover I think this feels like one of those issues that has a lot of ramifications we're not seeing at a glance with marketplace add-ons or work that has happened outside of our awareness.
So. Any thoughts on this one?
FWIW (probably not much) - this is what I do in site.php:
define('BASE_URL', 'http://' . $_SERVER['HTTP_HOST']);
That way, BASE_URL reflects whatever you are calling the site with. If someone were to add a second domain without getting the dns configured properly, their site would still be usable from the original domain. I do this just because we have different hostname conventions for development, staging, production and it's one less thing to think about.
define('BASE_URL', 'http://' . $_SERVER['HTTP_HOST']);
That way, BASE_URL reflects whatever you are calling the site with. If someone were to add a second domain without getting the dns configured properly, their site would still be usable from the original domain. I do this just because we have different hostname conventions for development, staging, production and it's one less thing to think about.
isn't this the same as if you would disable the base url redirection completely?
Strictly speaking from a "host" stand point, I'd stick with modifying the base URL to the parked domain..but only executing the base URL modification after the system verifies the domain is "parked" properly (Correct DNS, A record exists.) This can be done a few ways.
This also allows users to feel secure that they've taken the right steps to park the domain prior to making any support requests. The system will tell them "DNS is not set properly" or "A record not found."
Again, that's just from a host stand point.
As far as Concrete5 direction is concerned..I don't see an issue with either disabling the base url by default or allow multiples, as Remo pointed out.
This also allows users to feel secure that they've taken the right steps to park the domain prior to making any support requests. The system will tell them "DNS is not set properly" or "A record not found."
Again, that's just from a host stand point.
As far as Concrete5 direction is concerned..I don't see an issue with either disabling the base url by default or allow multiples, as Remo pointed out.
Isn't this only an issue if you have multiple domains and don't redirect through htaccess? I always put up some standard rules (like making sure www is inserted as a prefix) for all our sites in the htaccess and therefor you always end up at the same place anyway?
yes, it only matter if you have multiple domains.. This is why I wrote that it probably doesn't hurt if it's disabled by default.
Just reviewing things, and wondering where this ended up.
i think enough changes have been made that base url is now optional.
However, this is only the case for very few sites. What if redirect to base url is disabled by default? If someone needs it you could still enable it..
Or, allow several base url's. Redirect to the first one, but let people stay on the second one as well.