hoge.html#a
hoge.html#b
hoge.html#c
これらのURLを301リダイレクトで新たにページ分けした
a.html
b.html
c.html
にそれぞれ301リダイレクトさせたいのですが
記述方法がわかりません
そもそもページ内リンクはリダイレクト出来ません?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
自己解決
一旦fuga.html#a → hoge.html(#aはそのまま残る)にリダイレクトさせ、jQueryでハッシュを取得して
locationで飛ばしました
jQuery
1if(location.hash == "#a") { 2 $(location).attr("href","a.html"); 3 }
投稿2016/10/21 04:19
総合スコア174
0
リダイレクトしたいということの回答になってなくてすみませんが・・・
ページ内リンクは要求が出ないのでそもそもダメですが、ページ外からの要求でも、フラグメントの仕組みからして無理ではないかと思うのですが。
例えば、ブラウザのアドレスバーに hoge.html#a と入力して要求をかけると、ブラウザからサーバーに出る要求は GET hoge.html です。#a は要求には含まれません。(Fiddler などのキャプチャツールで見ると分かります)
フラグメント #a という情報はブラウザで保持していて、サーバーから hoge.html が応答として戻ってきてから、ブラウザがその応答を表示する際 #a の位置にスクロールしています。
IIS7 にタグがついてますのでサーバー側で対応したいということと想像していますが、少なくともサーバー側では何ともなりません。
新しい URL に書き換える(hoge.html#a ⇒ a.html)のが一番かと。
投稿2016/10/14 05:42
退会済みユーザー
総合スコア0
0
hoge.htmlにアクセスした人が、ページ内リンク
HTML
1<a href="#a">a</a>
をクリックしたときに301リダイレクトさせたいという事でしたら、そのままでは無理です。
JavaScript等で飛ばしてやる必要があります。
(同一ページ内のリンクでは、そもそもHTTPリクエストが発生しないため)
そうではなく、example.htmlへアクセスした人が、そのページ内にあるリンク
HTML
1<a href="hoge.html#a">a</a>
を301リダイレクトさせるのであれば可能です。
.htaccess等でルールを切る事になりますが。
投稿2016/10/14 05:15
総合スコア5405
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。