2016-05-11 11 views
0

をキャッシュしているようですURLに設定されたパラメータ:ワニスは、私は時々</p> <blockquote> <p>www.mydomain.com/product-listing/</p> </blockquote> <p>当社のベンダーの一つが特定して、このページをご覧のページでウェブサイトを持っている、不要なページ

www.mydomain.com/product-listing/?vendor=VENDORID

これは、そのベンダーに固有のページのヘッダーにいくつかの情報を表示します。

ベンダーパラメータが格納されていて、ワニスによってキャッシュされて提供されているバージョンとは別に、バックエンドによってサービスされる残りのページのバージョンが必要です。

しかし、ワニスがこれらの訪問ベンダーの1つをキャッチしてその結果をキャッシュしているように見えることがあります。その後、ヘッダー情報のページが返されます。

クッキーがあります:ベンダーがクッキーを初めて訪れると、パラメーターが存在しない場合でもヘッダー情報が表示されるように設定されます。しかし、私が知っている限り、バックエンドがクッキーを送信する場合、ワニスはキャッシュしてはいけません。私たちはvclのクッキーを操作しません。

マイVCL:他のサブルーチンで

sub vcl_recv { 

    // I expect this to catch all urls with the parameter vendor present 
    if (req.url ~ "vendor") 
    { 
     return (pass); 
    } 

    if (req.url ~ "^/product-listing"){ 
     return (hash); 
    } 

    return(pass); 
} 

何もありません。

答えて

1

は、このコード(ワニス4)をテストしていませんが、あなたはそれはそれを拾うかどうかを確認するために、以下にそれを変更してみたいことがあります。

if (req.url ~ "^/\?vendor") { 
    return (pass); 
} 

また、それはそれを修正しない場合は、あなたは、上記に加えてvcl_backend_responseに次を追加してみてください:

if (bereq.url ~ "^/product-listing" && bereq.url !~ "^/\?vendor") { 
    unset beresp.http.set-cookie; 
} 

限り、応答クッキーの設定を解除するためにニスを伝える必要があることをベンダー= URLではありませんが、キャッシング製品一覧未設定のクッキーで?製品リスト/?ベンダー=ではできません。

+1

要求にCookieが存在する場合に渡すコードが追加されました。日中に動作するかどうかを確認します。そうでなければ、私はあなたのアプローチを試みます。ありがとう! 'if(req.http.Cookie〜" Vendor_Session "){return(pass);} } ' – Jensd

関連する問題