0

共有ホスティングで簡単な PHP スクリプトを作成し、.htaccess ファイルにいくつかのルールを実装して、スクリプトが呼び出すたびに、たとえばhttp://www.google.com/test1がhttp:/を取得するようにしたいと考えています。 /www.otherwebsite.com/test1代わりに。

以前に標準の URL 書き換えルールを使用したことがありますが、この特定の機能は必要ありませんでした。

ありがとうございました !

4

2 に答える 2

0

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

おそらく必要なのは、すべての外部リンクonclickのイベントにフックすることで、ユーザーを希望どおりにリダイレクトするスクリプト ソリューションです。ここではjQueryを使用した簡単な概念実証を示しますが、これは標準の JavaScript を使用して行うこともできます。

<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>
 <!--
   $(function() {
       $("a").click(function(e) {
         var url = e.target.href;
         if(!(url.startsWith("mysite.com") ||
              url.startsWith("http://mysite.com"))) {
            var path = $( '<a />', {href : url} ).prop( 'pathname' );
            window.location.href = "http://otherwebsite.com" + path;
            e.preventDefault();
         }
       });
   });
 //-->
 </script>
</body>
</html>

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

于 2013-08-19T23:04:15.533 に答える
0

私があなたの質問を正しく理解した場合、あなたはすべての URL を他のドメインにリダイレクトしたいと考えています。

mod_rewrite と .htaccess を有効にしてからhttpd.conf、このコードをディレクトリの.htaccess下に配置します。DOCUMENT_ROOT

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^(www\.)?yourwebsite\.com$ [NC]
RewriteRule ^ http://www.otherwebsite.com%{REQUEST_URI} [R=301,L]
于 2013-08-19T19:25:34.773 に答える