1

現在、私はこれを持っています:

RewriteRule ^Skills$ http://mypage/resume.php#Skills [NE,NC,L]

URL がある場合、アンカー リンクに適切にリダイレクトされます:http://mypage/Skills. ただし、ブラウザの URL には実際のアンカー リンクhttp://mysite/resume.php#Skills が表示されます:http://mysite.com/Skills

URLをリダイレクトして書き換えるにはどうすればよいですか?

4

1 に答える 1

0

http://mypageターゲットの前にいるため、ブラウザをリダイレクトしていますRewriteRule。これにより、リライトエンジンに302リダイレクトが必要であることが自動的に通知されるため、ブラウザのアドレスバーが変更されます。ただし、ここでの問題は、それを削除してそのままにする/resume.php#Skillsと、リクエストが内部的に書き換えられますが(ブラウザのアドレスバーにあるものは保持されます)、フラグメント(#Skills)は役に立たなくなります。

フラグメントはクライアント側で使用され、特定の方法で要求されたコンテンツを処理するようにクライアント側に指示します。通常、名前付きアンカーがある場所にページングします。ブラウザにが表示されない場合、#Skillsanchorという名前の「スキル」にページングされません。リダイレクトしない場合、フラグメントはサーバーによって内部的に処理されており、サーバーはフラグメントを無視するため、ブラウザーにはフラグメントが表示されません。

http://mypage/resume.phpロードしたばかりのコンテンツを特定の名前のアンカーにページングする必要があることをブラウザに通知する、ある種のjavascriptソリューションがあるかもしれません。ブラウザのアドレスバーを見て、それが要求していることを確認し/Skills、onload()でSkillsアンカーにページングすることで、それを実行できる場合があります。

于 2012-07-12T17:01:05.567 に答える