[UPHPU] httpd.conf RedirectPermanent

Justin Hileman justin at justinhileman.info
Thu Apr 9 01:08:10 MDT 2009


Brandon Stout wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Lonnie Olson wrote:
>
>> On Tue, Apr 7, 2009 at 7:37 AM, Justin Hileman wrote:
>>
>>> <IfModule mod_rewrite.c>
>>>   # Canonical domain name rewrite
>>>   RewriteCond %{HTTP_HOST} !^justinhileman\.info$ [NC]
>>>   RewriteRule (.*) http://justinhileman.info/$1 [L,R=301]
>>> </IfModule>
>> Justin's method accomplishes your goals, keeps you down to a single
>> Vhost per site.  BTW as Justin mentioned mod_rewrite can give a
>> "permanent" redirect too.
>>
>> --lonnie
>
> This is what I was talking about, but I used the wrong name.  I should
> have looked up the name before I sent the post.  This accomplishes the
> same thing, but it seems it would require more processing.  It also
> doesn't tell the world that the URL was incorrect - a permanent
> redirect.  I'm thinking this is the better method for SSL domain
> forwarding since you have to put the certificate in there.  I'm not
> convinced this is the best method for regular domain redirects.  I'm
> open minded on this, and still curious if there are more opinions on it.
>   Maybe this is the better method, and maybe 'better' is whatever you
> like it to be.  Does this take more processing?  Would it be
> significantly more for a machine that hosts hundreds of domains?  Is it
> better form to send the Internet a message saying "this domain is a
> permanent redirect to that one"?
>

That's exactly what my mod_rewrite rule does...


Mod rewrite is really flexible. The flags at the end can tell it to do 
any kind of rewrite you want. In my case, I use the [R=301] to do a 
permanent (301) external redirect.

It just has the added benefit of allowing redirects to any address in 
the domain rather than the base url. Here, try it:

http://www.justinhileman.info/archive


In fact, here's a double redirect:

http://www.justinhileman.info/archive/2008/04

It resolves the canonical domain (anti-www) redirect first, then 
redirects from my old `archive/YYYY/MM` urls to my new single-page 
archive urls. The headers in both cases are 301--permanent redirect. 
Isn't mod_rewrite fun? :)


The processing time for mod_rewrite is approximately the same as 
processing a Perl regex. AKA negligible when compared to processing 
*any* PHP at all.

(Side note: Don't judge performance of mod_rewrite based on my server 
speed. I have a leaky Python script that eats all available resources 
and has to be kill -9'd by my monitoring daemon about once an hour... 
Some day I'll have time to fix that beast.)


-- 
justin
http://justinhileman.com



More information about the UPHPU mailing list