質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
IIS 7

IIS(インターネットインフォメーションサービス) 7は、 Microsoftによって開発された、Windowsの標準ウェブサーバーです。Window Server 2008 と Windows Vista向けにリリースされました。

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

Q&A

解決済

3回答

13347閲覧

ページ内リンク付きのURLを301リダイレクトするには?

hyksm

総合スコア174

IIS 7

IIS(インターネットインフォメーションサービス) 7は、 Microsoftによって開発された、Windowsの標準ウェブサーバーです。Window Server 2008 と Windows Vista向けにリリースされました。

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

0グッド

0クリップ

投稿2016/10/14 05:03

hoge.html#a
hoge.html#b
hoge.html#c

これらのURLを301リダイレクトで新たにページ分けした
a.html
b.html
c.html

にそれぞれ301リダイレクトさせたいのですが
記述方法がわかりません

そもそもページ内リンクはリダイレクト出来ません?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答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

hyksm

総合スコア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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hyksm

2016/10/14 05:47

>新しい URL に書き換える(hoge.html#a ⇒ a.html)のが一番かと。 書き換えるのはありですね!
kunai

2016/10/14 06:22

>フラグメントの仕組みからして無理 確かにそうですね。うっかりしていました。。
guest

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

kunai

総合スコア5405

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hyksm

2016/10/14 05:20

一旦fuga.html#a → hoge.html(#aはそのまま残る)にリダイレクトさせ、jsでハッシュを取得して #a=a.htmlへ 302で飛ばすしか無いのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問