人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

.htaccessで下記のようにして、
ページ内リンクに飛ばしたいのですが「#」が使えないようです。

どうすれば考えていることができるでしょうか。
よろしくお願いします。

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?test/ /hoge/#test [L]

●質問者: web2009
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:.htaccess hoge ON test リンク
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● kmdsbng
●60ポイント

ページ内リンクはブラウザが処理を行います。たとえばブラウザが

http://example.net/hoge/#test

という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ではなく、リダイレクト後のものになる、という副作用があります。

ご参考まで。

◎質問者からの返答

ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ