ユーザーが一連の文字と数字を選択し、それに基づいて新しいページに移動する Web サイトがあります。
そのため、/cds/C_1_3_A_2
ディレクトリに実際のC_1_3_A_2
ページはありませんcds
。書き換えルールがあります。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^cds/(.*) /cds/index.html [L]
そのため、要求されたファイルが存在しない場合は、 に書き換えられますindex.html
。ここで、php スクリプトが URL の最後のコンポーネント ( C_1_3_A_2
) を取得し、関連するコンテンツをロードします。URL の最後のコンポーネントが である場合/cds
、PHP スクリプトは にリダイレクトします。/cds/C_1_1_A_1
ただし、AJAX を追加してスムーズにしたいと考えています。つまり、古いブラウザーは history.pushState をサポートしていないため、ハッシュ フラグメントのサポートを追加する必要があります。
したがって、ユーザーが自分で に行く場合は、次のようになり/cds/#C_1_3_A_2
ます。/cds/C_1_3_A_2
しかし、フラグメントがサーバーに送信されないため、ユーザーは最終 的に になり、意図したものではなく、/cds/C_1_1_A_1#C_1_3_A_2
関連するコンテンツを取得します。C_1_1_A_1
C_1_3_A_2
PHP はサーバー側であるため、Javascript がフラグメントを処理する前に実行されます。ユーザーが PHP スクリプトによってリダイレクトされてから、JavaScript によって戻されることは望ましくありません。
では、ハッシュ フラグメントのサポートを追加するにはどうすればよいでしょうか。他のサイトはこれにどのように対処していますか?