mod_rewrite とハッシュタグ (#) を使用したときのブラウザーの動作が気になります。Firefox と Chrome は、ハッシュタグとフラグメントを使用して、元の URL を保持したまま、「www」を含む URL を書き換えて「www」を削除できます。問題ありません。それは素晴らしいです!しかし、Safari と IE7/8 (9 については不明) では、「www」が削除され、書き換え中にハッシュタグとフラグメントが失われます。mod_rewrite を使用して Safari と IE を修正する方法があるかどうか疑問に思っています。ただし、フラグメントについて尋ねているので、そうではないと思います。(私は mod_rewrite の経験がありません。それについて読んだだけで、HTML5 Boilerplate .htaccess ファイルを使い始めたばかりです。ハッシュ フラグメントがサーバーに送信されない方法と、保存またはそのフラグメントを使用するには、Javascript を使用してクライアント側で何かを行う必要があります。
Twitter を使用して、私が話していることの例を示すことができます。Chrome または FF を使用してhttp://www.twitter.com/#!bizにアクセスすると、 http://twitter.com/# !bizのリライトが得られます。問題ありません。完璧です。しかし、Safari と IE7/8 で同じ URL (「www」を含む) を使用すると、URL がメインの Twitter URL に書き換えられます。「www」はありませんが、ハッシュとフラグメントはなく、ディープリンクもありません。#!/biz (2 番目の / を含む) を含む Twitter URL についても同じ結果です。
Twitter がこの Safari/IE と 'www' の動作について何もしない (またはできない) のであれば、私も気にするべきではないでしょうか? .htaccess ファイル内で mod_rewrite を使用してハッシュタグ フラグメントを保存するソリューションがないため、これはブラウザの問題ですか?
特に私の作品では、ハッシュタグを使用して Flash コンテンツにディープ リンクする SWFAddress を使用しています。これは、「!」がないことを除いて、Twitter の URL とほとんど同じです。Twitter は Making AJAX Crawlable アプローチを使用していると思います。Twitter と同じように、私の URL は FF と Chrome では問題なく書き換えられますが、Safari と IE 7/8 ではうまくいきません。ハッシュタグに「!」が付いていても変わらないようです。そうでなくても、それはまだフラグメントの一部ですよね?
Flash サイトのコンテンツをクロール可能にするソリューションを探していたときに、AJAX クロール可能にする SWFAddress バージョンのアプローチをいじり始めましたが、ブラウザーは mod_rewrite を同じ方法で処理します。「www」の削除は FF/Chrome では正常に機能し、Safari と IE ではフラグメントをボンクします。SWFAddress Making AJAX Crawlable アプローチ バージョンの実例があります (リンクを削除する必要がありました。stackoverflow への新しいユーザーは、投稿ごとに 2 つの URL しか取得できません)。最終的に、私は自分の Flash コンテンツを検索可能にするためにそのアプローチを使用しませんでしたが、有望に見えます。HTML スナップショットを作成するのは、PHP ページを使用するよりも手間がかかると思いますが、それはまったく別の主題/質問です。
(私の最初のスタックオーバーフローの質問に対して)「ええ、気にしないでください!」のような非常に短い答えがあったとしたら、それは面白いでしょう。:)
ありがとう!