ページ内リンクに飛ばしたいのですが「#」が使えないようです。
どうすれば考えていることができるでしょうか。
よろしくお願いします。
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?test/ /hoge/#test [L]
ページ内リンクはブラウザが処理を行います。たとえばブラウザが
というURLにアクセスすると、サーバは/hoge/というコンテンツを返し、ブラウザが <a name="test"> という要素まで画面をスクロールします。
なので、mod_rewriteでこれを実現するためには、ブラウザに302ステータスを返して、ページ内リンクを含んだURLに再度アクセスさせる必要があります。
mod_rewriteで、HTTPステータス 301 を返すサンプルが以下のページにありました。
http://tech.bayashi.net/svr/doc/apache/mod_rewrite.html
この手法で、恐らくブラウザにページ内リンクを含んだURLにアクセスさせることができるはずです。(ただし未検証です)
ただ、この手法は外部リダイレクションを用いているため、リダイレクト後にブラウザに表示されるURLは、元々ブラウザがアクセスしたURLではなく、リダイレクト後のものになる、という副作用があります。
ご参考まで。
ありがとうございました。