2

外部サイトの URL を変数として設定した php ファイルを介して、すべての外部リンクをリダイレクトしようとしています。

例。私のサイト (mysite.com) にリンクがある場合google.com/results/1234、URL を自動的にリンク先に書き換えたいmysite.com/external.php?p=google.com/results/1234.

サイト上の他の URL に影響を与えずに外部 URL に関連付けられたファイルを変更できないため、htaccess ソリューションが必要です。

mysite.com へのリンクをリダイレクトしたくありません。

誰かが私を正しい方向に向けることができれば、本当に感謝しています.

4

1 に答える 1

1

.htacess ファイル経由では実行できません。.htaccess は、Web サーバーに解決されるドメイン名を持つ受信 URL のみを書き換えることができます。これらのリクエストは送信 Web サーバー (この例では google.com) に直接送信されるため、送信 URL を制御することはできません。

onclickおそらく必要なのは、すべてのリンクのイベントにフックすることで、必要に応じてユーザーをリダイレクトするスクリプト ソリューションです。

編集:ここでは、jQuery を使用した概念の簡単な証明を示します。これで始められるはずです。

<html>
<head>
 <title>jQuery global redirector</title>
 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
</head>
<body>
 <a href="http://google.com/search?q=jquery">google url would redirect</a><br />
 <a href="http://mysite.com/somepage.php">mysite.com url won't redirect</a>
 <script>
 <!--
    $("a").click(function(e) {
      var url = e.target.href;
      if(!(url.startsWith("http://mysite.com") || url.startsWith("mysite.com"))) {
        window.location.href = "http://mysite.com/redirect.php?site=" + url;
        e.preventDefault();
      }
    });
 //-->
 </script>
</body>
</html>

おそらく、スクリプトを別のファイル (redirect.js など) 内に配置し、そのようなリダイレクトが必要なページに選択的にこのスクリプト (<html> の末尾近く) を含める必要があります。また、jQuery もインポートすることを忘れないでください。

于 2013-04-26T02:56:11.117 に答える