2012-02-19 11 views
0

私はGoogleをしばらく検索していますが、解決策を見つけることができませんでした。htaccessはクッキー値に基づいてリダイレクトします

私は、彼らが以前にサイトを訪問したhaventは場合にのみ、ウェルカムページに自分のサイトのユーザーをリダイレクトする必要があります。

私はhasVisitedクッキーを保存し、リダイレクトこれがfalseの場合、ウェルカムページに設定するつもりです。

私はPHPとjQueryでこの作業を取得することができますが、それは、クッキーは、それが最初のデフォルトのページのコンテンツをロードし、その後、リダイレクト設定されているかどうかを確認したとき。 doesntはあまりにも行きます。私は後の午前何

: - htaccessをリダイレクトする前に、まず bは、デフォルトのページの読み込みを停止使用します - 感謝上記

任意の助けを行う方法。 Googleが唯一のことができるようになります - これはSEOに影響を与えるだろうと警告され

if (!isset($_COOKIE['hasVisited']) { 
    header("Location: http://example.com/welcome.php"); 
} 

すなわち、彼らに

をリダイレクトするために:あなたはPHPでチェッククッキーを行い、その後、ヘッダ(「http://your-url.com/場所」)呼び出す必要が

答えて

2

すべてのPHPファイル用のウェルカムページをチェックするために、あなたは、これを置く。あなたは、これを追加することができます許可するようにGoogleは、チェック

if (!isset($_COOKIE['hasVisited'] && !strpos($_SERVER[‘HTTP_USER_AGENT’],"Googlebot")) 
+0

OK。 PHPを使い続けてください。クール – puks1978

+0

何かを印刷する前にこれを行うべきです。そうでなければ、警告と望ましくない内容を返します。 – jribeiro

+0

jribeiroがこれをトップにする必要があると言いました.-ヘッダーを送信しています。 – Ayub

2

を通じてあなたは、PHPを使用する必要はありません。単純に書き換えルールを使用できます。前のコンテキストをどのように維持するかは、SEOに最適化されたエンコーディングを使用するか、従来のパラメータエンコーディングをパラメータに使用するかによって異なります。したがって

RewriteEngine On 
RewriteBase /

RewriteCond %{HTTP_COOKIE}  !\bhasVisited=  [NC] 
RewriteRule (?:!welcome\.php\b)(?=\.php\b)(.*) welcome.php?page=$1 [QSA,L]  

ルールの最初のビットは、2回の発射を防ぐことです。 2つ目はこれをphpスクリプトに限定します(welcome.phpによって使用されるCSSはリダイレクトされたくありません)。訪問者が最初のリクエストを続行したい場合に備えて、最初のURIを保存する必要があります。もちろん、すべてのスクリプトに追加する必要があります -

このアプローチは、代替PHPのチェックよりも簡単です。

関連する問題