On Mar 26, 2008, at 7:55 AM, Wade Preston Shearer wrote:
Does anyone have experience setting cookies with Apache? Any gotchas or tips that you could offer?

Wade, I used Apache cookies for setting language preferences on our website. The user could change the language of the website, via a cookie on his machine, by clicking a link. For example clicking the link to /locale:pt_BR would set a cookie indicating the user's preference for Brazilian Portuguese, then redirect back to a Portuguese home page.

1. The RewriteRule looked for /locale: and a 5 character locale string, set a cookie, and then redirected back to the root:

RewriteRule ^/locale:(.....) / [R=302,L,cookie=locale: $1:.moregoodfoundation.org:525600]

2. Elsewhere in httpd.conf, I used SetEnvIf to set an environment variable called "prefer-language" based on the language cookie:
SetEnvIf Cookie "locale=en_US" prefer-language=en
SetEnvIf Cookie "locale=pt_BR" prefer-language=pt
SetEnvIf Cookie "locale=es_ES" prefer-language=es
SetEnvIf Cookie "locale=it_IT" prefer-language=it

3. The document root was configured to allow multi-views:
<Directory "/usr/local/www">
    Options MultiViews ...
    ...

4. In document root we created a home page for every language:
index.php.en
index.php.es
index.php.it
index.php.pt

The URL would always appear to be http://www.moregoodfoundation.org/, but the language would change depending on the cookie.

The only gotcha I saw was that sometimes the domain of the cookie wasn't what I expected and had to be tweaked.

We've since moved away from this model since we want each language version of the site to be bookmarkable and indexable.

Richard



_______________________________________________

UPHPU mailing list
[email protected]
http://uphpu.org/mailman/listinfo/uphpu
IRC: #uphpu on irc.freenode.net

Reply via email to