以下のような短縮URLが一般的です
http://dwz.cn/CSW6Y => http://www.cnblogs.com/iforever/p/4313704.html、
http://dwz.cn/CSWuP => http://www.cnblogs.com/iforever/p/4279006.html など
これらの URL にアクセスすると、前と後ろのペアが同じページを指します。これらの短い URL は、weibo などのソーシャル ネットワークでよく見られるものです。今回はその威力を発揮し、短くて覚えやすいですが、欠点もあります。たとえば、短い URL では URL 内の一部の情報が直接表示されない場合があります (長い URL では一部の情報が表示されます)。
私は一日中これにさらされていたので、その原理を本当に理解する前に、私の心に「何もない」という刷り込みができました。これは、心理学では心理的暗示と呼ぶべきです。 、これが事実であることを知っている人はいますか?
まず、これはリダイレクトによって実現されていると思いますが、dwz.cn はこれらの短い URL を受信するために使用されるサーバーであり、dwz.cn には短い URL に対応する長い URL が存在します。 URL のレコードを取得し、短い URL に対応する長い URL をデータベースから取得し、302 でリダイレクトします。これが当てはまるかどうかを確認してください。
ブラウザーで http://dwz.cn/CSW6Y にアクセスし、リクエストを分析します (ここでは Chrome のデバッグ ツールを使用するか、Wireshark などのツールを使用できます)。次のデータを取得できます。
名前: abit バージョン: 1 ハンドル: - 書き換え: if (!-d && !-f && path ~ "/(.*)$") goto "do.php?url=$1&act=out" ハンドル: 以下は Sina Cloud の具体的な詳細ルールです。 http://sae.sina.com.cn/doc/php/runtime.html#php-app-config を参照してください。 nginx、apacheの構成も同様です。
リダイレクトの完了後に注意すべきもう 1 つの点は、パラメーターを渡すときに urlencode を実行する必要があり、リダイレクトの前に urldecode を使用する必要があることです。 urlencode を使用せずに URL 型パラメータを渡すと、取得時に情報の一部が失われる可能性があるため、ショート リンクを生成する前にパラメータを渡す場合は、URL をエスケープし、特殊な文字列をエンコードし、ショート リンクを暗号化する必要があります。エンコードされた URL を URL デコードして通常のリンクに戻す必要があります。そうしないと、ヘッダージャンプ後に URL が通常の URL として認識されなくなります。前のページでは、http://abit.sinaapp.com/www.cnblogs.com と同様に、エラーが発生する可能性があるため、ここでは特に注意してください。
Sae にはリダイレクト時に問題があり、二重のバックスラッシュを自動的に 1 つにフィルタリングします。たとえば、http://abit.sinaapp.com/ から http:/abit.sinaapp.com/ に、ここに欠落があることに注意してください。処理するときは特に注意してください。そうしないと、不要な問題が発生する可能性があります。
エンコーディング
リーリー
結果
http://abit.sinaapp.com/興味がある方はぜひ試してみてください
この記事の著作権は著者 ifforever (luluyrt@163.com) に帰属します。記事を転載した後は、著者と原文リンクを明記する必要があります。記事ページに掲載されない場合は、法的責任が留保されます。