[UPHPU] set cookie with Apache

Richard K Miller richardkmiller at gmail.com
Wed Mar 26 09:33:26 MDT 2008


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




More information about the UPHPU mailing list