1

通常、私は .htaccess の単純なルールを使用して Apache ModRewrite を使用してサーバーに Web サイトを展開し、www を含むアドレスを www なしにリダイレクトします。www.example.com => example.com

現在、IIS + UrlRewrite を使用して Windows のサーバーに Web サイトを展開しています。リダイレクト設定を実現する web.config ファイルには、www アドレスを削除する次のルールがあります。

<rule name="Imported Rule 1" stopProcessing="true">
    <match url="^(.*)$" />
    <conditions logicalGrouping="MatchAll">
        <add input="{HTTP_HOST}" pattern="^www\.(.+)$" />
    </conditions>
    <action type="Redirect" url="http://{C:1}/{R:1}" redirectType="Permanent" />
</rule>

ブラウザ経由で、リダイレクトは完全に機能します!
ただし、Facebook や Google+1 ボタンなどのいくつかの外部ツールは、リダイレクト ルールが有効になっていると機能しません。

たとえば、Google+1 ボタンをクリックするとエラーが発生します (要求でボタンをクリックすると、エラーが表示されます: "コード": -32099、"メッセージ": "バックエンド エラー")。
次のツールを使用して www アドレスを使用して Web サイトを分析しようとすると、Facebook で既に問題を認識しています: http://developers.facebook.com/tools/debug
Facebook エラー:URL Parsing Error: Error parsing the URL typed, no data was collected.

リダイレクトを無効にすると、Google+1 ボタンと Facebook の分析ツールが完全に機能します。

注:解決策を見つけるために無効なルールを残したいので、原則はサイトに通知しません。リンクを通知する必要がある場合は、この質問を編集します。


編集: いくつかのテストの後、ルールが有効になっているかどうかに関係なく、+1 ボタンに関する私の問題は続きます。Google Code で同じ問題に関するスレッドを見つけましたが、何をすべきかわかりません:

http://code.google.com/p/google-plus-platform/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Type%20Status%20Component%20Owner%20Summary%20Stars&groupby=&sort=&id= 241

この問題は、サイトにバインドされている場合にのみ発生します。+1 ボタンが 2 つあるテスト ページを作成しました。1 つはサイトを指し、Stackoverflow を指しています。ボタンをクリックすると Stackoverflow が機能しますが、他のボタンは機能しません:

http://renlvida.org.br/teste.php

4

0 に答える 0