2012-02-04 13 views
0

私は私のようにURLを表示したいと思い、紹介URLがhttp://example.com/123456htaccessファイル - 再書き込みURL別のURLにリダイレクトする一方で

ようになります紹介スキーム、とウェブサイトを作成しています単純にhttp://example.com/ですが、依然として123456をキャプチャし、参照先を指定します。

.htaccess mod_rewriteでこれを行うことは可能でしょうか?

RewriteRule ^([0-9]+) ?ref=$1 [L] 

のようなものは、URLを転送するために働くだろうが、ここではリダイレクトとリファラコードなしで、アドレスバーにhttp://example.com/を表示する方法はありますか?

PHPヘッダーでは明らかに可能ですが、可能であればこれを使用しないことをお勧めします。

答えて

4

HTTPはステートレスプロトコルであるため、これはRewriteModuleを使用した単純な方法では不可能です。参照IDを削除してユーザーをリダイレクトすると、2回目の要求でもうIDを認識できなくなります。

したがって、PHPを使用してクッキーまたはセッションにIDを保存し、その後にユーザーをLocationヘッダーでリダイレクトする必要があります。私はおよそ同じくらいと思っ

htaccessの

RewriteRule ^([0-9]+) index.php?ref=$1 [L] 

のindex.php

if (isset($_GET["ref"])) { 
    setcookie("refid", $_GET["ref"]); 
    header("Location: http://example.com/"); 
    exit; 
} 
if (isset($_COOKIE["refid"])) { 
    echo "You came from ref id: $_COOKIE[refid]"; 
} else { 
    echo "You came without a ref id."; 
} 
+0

!明確にしていただきありがとうございます! –

関連する問題