On Tue, 10 Mar 2009, Krist van Besien wrote:

On Tue, Mar 10, 2009 at 2:24 AM, Charles Sprickman <sp...@bway.net> wrote:
So in short, this does work, until I get into the murky area of keeping the
URL consistent in the browser.  For example, let's take "www.foo.com". I
always want visitors to see "www.foo.com" in the browser URL field.  If I
set "UseCanonicalName On" in the virthosts, the ServerName seems not to be
enforced like it is with traditional IP or name-based hosting.  If I point
"giantpornstash.blah.com" at the IP that "www.foo.com" resolves to, the user
will browse the site with "giantpornstash.blah.com" in the browser address
field.  It is my (limited) understanding that this should not happen with
the ServerName and UseCanonicalName settings properly configured, and
basically can't happen with Name-based virthosts (host header doesn't
match).

The only way that you can change what appears in the browser's address
bar is by forcing a redirect, so the browser requests the site again
from the correct name.  If you don't force a redirect if a site is
requested with the wrong name than this wrong name will stay visible
in the browser.

OK. That makes perfect sense. At this point, my main concern is actually understanding how this works. When I was reading the docs on "UseCanonicalName" (http://httpd.apache.org/docs/2.2/mod/core.html#usecanonicalname) I noticed that reference is made to "self-referential" URLs. Under what conditions does Apache then get involved and alter the URL? Just redirects? I understand a common redirect is just adding a trailing slash when the user does not supply it. What are some other common cases? Who's call is it when a simple static site uses non-absolute URLs for all the links? Is the browser building the fully-qualified links or apache (I suspect the former)?

What you need to do is check what's in the "Host" header, and if it
doesn't match the ServerName send a redirect.

RewriteEngine On
RewriteCond %{HTTP_HOST}   !^www\.foo\.com [NC]
RewriteCond %{HTTP_HOST}   !=""
RewriteRule ^/(.*)         http://www.foo.com/$1 [L,R=301]

Excellent. It may be a challenge for me to incorporate this into the search-engine-friendly rewrite rules that Joomla uses, but I'll give it a spin on a staging box and see what happens.

What kind of performance impact, in general, do simple rewrites like this impose on a busy server?

Thanks,

Charles



HTH,

Krist


--
krist.vanbes...@gmail.com
kr...@vanbesien.org
Bremgarten b. Bern, Switzerland
--
A: It reverses the normal flow of conversation.
Q: What's wrong with top-posting?
A: Top-posting.
Q: What's the biggest scourge on plain text email discussions?

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org
  "   from the digest: users-digest-unsubscr...@httpd.apache.org
For additional commands, e-mail: users-h...@httpd.apache.org


---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org
   "   from the digest: users-digest-unsubscr...@httpd.apache.org
For additional commands, e-mail: users-h...@httpd.apache.org

Reply via email to