检查cookie并使用Apache重定向

Per*_*röm 4 php mysql apache drupal drupal-6

我希望得到一些反馈。我不确定这是否是正确的方法。

细节

我正在用PHP 5.3 / MySQL 4运行Apache 2,而Drupal 6是平台。

我正在开发一个网站,其中包含一些选定城市的餐厅评论。当用户到达站点时,它可以选择他们所在的城市。我将他们的选择存储在cookie中,如果他们没有做出选择,那么我选择了默认城市。

拟议的解决方案

现在,我希望URL mydomain.com/reviews根据城市选择将其重定向到特定于城市的URL。例如,如果我已选择巴黎作为我的城市,则为mydomain.com/reviews/paris。(如果未设置Cookie,则应将其重定向到默认城市。)

我认为这是最好的选择,因为我希望用户能够在不更改城市的情况下查看其他城市的评论。如果他们想查看伦敦餐厅的评论,只需访问mydomain.com/reviews/london。

为了获得最佳性能,我正在考虑让Apache检查cookie,并在用户转到mydomain.com/reviews时将其重定向到正确的城市。

所以这是我的问题...

  1. 如何配置Apache来做到这一点?
  2. 这是最好的方法吗?

ton*_*lex 5

  1. 要将Apache配置为执行此操作,请使用以下内容替换为cookie名称。

    RewriteEngine on
    RewriteCond %{REQUEST_URI} ^/reviews/?$
    RewriteCond %{HTTP_COOKIE} <cookie>=([^;]+)
    RewriteRule .* http://mydomain.com/reviews/%1 [R=302,L]
    
    Run Code Online (Sandbox Code Playgroud)
  2. Yelp将位置存储在cookie中,因此我认为这是一个好兆头,因为它们的流量非常大,而且看起来运行良好。

使用Apache进行重定向有优点和缺点,但是主要缺点是,在代码中而不是在服务器上维护重写规则更加容易。您可以快速进行修复和部署,而不必更改和重新启动所有Apache服务器。