.htaccess和cookie php

时间:2011-03-22 13:50:00

标签: .htaccess

在我的htaccess文件中,将http://au.youpon?area=Melbourne之类的网址转换为http://au.youpon/Melbourne。已将.htaccess文件中的代码编写为

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?area=$1 [L]

这是有效的,其中jquery选择框中的URL和城市工作正常。

  1. 在index.php文件中,我正在使用cookie概念(如果用户关闭浏览器,将加载最后选择的城市。
  2. 场景1:    如果我选择“墨尔本”,网址将像“http://au.youpon/Melbourne”一样在Cookie“CookieArea”墨尔本将被存储,当我关闭浏览器并再次打开时显示“墨尔本”,来自cookie变量,在jquery框中。) cookie正在运行,在这种情况下。

    场景2:   如果我从index.php-> file2.php->移动/导航回index.php,这里失败了,加载无效数据代替城市名称,在同一个jquery框中,这意味着cookie值是被无效数据覆盖。

    (代替城市名称显示为'img / common / img / figure_quick_filter_01.png'等)。

    这是用于存储最后选择的城市名称的cookie首选项代码。

    In index.php :
    
    if($_COOKIE['CookieArea']=="Select City"){
    $cookieArea = '';
    }else{  
    $cookieArea = $_COOKIE['CookieArea'];
    $cookieCountry = $_COOKIE['CookieCountry'];
    }
    ...
    ...
    ...
    ...
    //[AT THE EOF, STORING THE CITY NAME AND COUNTRY]
    setcookie("CookieArea", $area ,time()+(3600*24),'/');
    setcookie("CookieCountry", $_SESSION['COUNTRYNAME'] ,time()+(3600*24),'/');
    

    我不确定,出了什么问题,无论是.htaccess还是cookie代码。请帮帮我,谢谢大家。

    如果需要,可以发送更多详细信息。

1 个答案:

答案 0 :(得分:1)

这只是一个猜测,但也许您正在尝试通过GET参数(查询字符串)(例如http://au.youpon/Melbourne?something=something)发送数据。这将由您的重写规则清除。要解决此问题,请添加QSA,它会将旧查询字符串与新查询字符串粘合在一起,以便同时获得这两个字符串。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?area=$1 [QSA,L]