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

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

新規登録して質問してみよう
ただいま回答率
85.40%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Q&A

3回答

486閲覧

404エラーの時にリダイレクトしたい。

samasa

総合スコア2

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

0グッド

0クリップ

投稿2024/06/19 06:27

編集2024/06/19 06:28

実現したいこと

・リンク先は会員ぺージで、会員じゃない場合は404エラーになる仕様になっています。
イメージ説明

ただ、404ぺージ(上記画像参照)だと、リンク切れに見えてしまうため、
会員登録をしていて正常にぺージを閲覧できた場合はそのままで、
上記画像ぺージのような404エラーのぺージになった時はリダイレクトをかけて、該当のぺージへ飛ばすようにしたいです。

発生している問題・分からないこと

・リンク先のぺージはgoogleのぺージでこちらではどういう仕様になっているのか分かりません。

・404エラーになったら、普通は404エラーぺージへリダイレクトされてURLが変わると思うのですが、
今回入れようとしているリンク先は、会員登録だと通常に見えて、
会員でないと、URLは変わらず(リダイレクトされていないよう?)そのままのぺージのURLで上記で貼った画像のような404エラーというぺージになります。

該当のソースコード

特になし

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

自分なりにリダイレクトなどで検索をかけてやり方を探したのですが見つけられず、
どういった方法があるのか、そもそもできないのか・・・など分からず教えていただけますと幸いです。

補足

補足としては、今回こちらが触れるぺージ(リンクのボタンを埋め込むぺージ)はwordpressです。

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

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

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

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

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

pecmm

2024/06/20 04:46

補足の一番最後におまけのように言及されていますが、本来の質問としてはwordpressが話の中心だと思うので タグや質問本文を見直した方がよいと思われます。 googleの404画像とかは実質無関係なので、あくまで参考で表示したいならこっちを補足とした方がよいかと。 (というか、最初から問題の404ページを見せた方が直接解決に繋がるのでは…?)
pecmm

2024/06/20 04:49

また、以降は予想が混じった話になりますが 「wordpress」「会員ぺージ」「会員以外は404」ということから、 `WP-Members`というプラグインの話ではないかと思われます。 >『404エラーになったら、普通は404エラーぺージへリダイレクトされてURLが変わると思うのですが』 むしろ、URLはそのままで404の内容を表示するのが一般的な挙動で 専用ページへのリダイレクトはカスタマイズの結果のような気がします。 私はwordpress詳しくないので回答はできませんが その辺りのプラグイン周りを含めて調べ直し・本文編集で質問し直しをオススメします。
samasa

2024/06/20 05:20 編集

いえ、wordpressの話しではありません。 wordpressはこちらが運用しているサイトで、そこへ外部サイトへのリンクを貼っているだけです。 なので404エラーというのは、基本的にはこちらでは編集する事ができない外部サイトの話しです。 その外部リンクが、googleの会員登録している人でないと見えないぺージで、会員じゃない人は404エラーになってしまいます。 https://notepm.jp/blog/8802#%E9%96%B2%E8%A6%A7%E5%88%B6%E9%99%90%E3%81%97%E3%81%9F%E3%82%B5%E3%82%A4%E3%83%88%E3%81%AE%E8%A6%8B%E3%81%88%E6%96%B9 しかし404エラーだとリンク切れに見えてしまうので、 非会員の方は、こちらで運用できるwordpressの固定ぺージで作成している「会員登録してくださいというぺージ」のリンクへリダイレクトさせたいという意味です。 簡単に言うと・・・下記です。 ・会員の方→googleの外部サイトへ飛ばす(こちらは現状のままで問題なし) ・非会員で404エラーになる方→固定ぺージへリダイレクトする(これができないか調査しております)
pecmm

2024/06/20 08:46

これは失礼、勘違いで誤った指摘をしてしまいました。 既に他で言われている通り、サーバ側にしろクライアント側にしろ事前に別オリジンサイトの情報を得る/遷移後に干渉することは不可能(それが許されるなら好きな情報を盗み見る攻撃サイトが簡単に作れてしまう)で、原理的にありえないためwordpress内での話だろう……と勝手に思い込みで話を捻じ曲げて解釈していました(言い訳)
yukaidana

2024/06/27 12:49

javaって使える状態ですか? 使える状態なのであれば サーバから会員か、会員じゃないかを取得して、それをif文で分岐をさしてあげたらいい思います。
guest

回答3

0

不可能です。
触れるページ・・・Aサイト
会員ページ・・・Bサイトとして

Bサイトに到達してからでないと会員か否か分からないかと思いますので、Bサイトで仕組みを作るほかありません。

Aサイト時点でBサイトの会員であるかを知るには
Bサイトの会員APIなどを利用する等の方法があります。
この場合のAPIとは、Aサイトから、何らかの情報をBに送ることで、事前に会員か否かを判定する方法です。
事前に判定できれば、クリックされるURLそのものを書き換えることで、404に飛ばないよう操作することができます。
しかし、会員である証明として何らかのOAuthやID/PWなどの情報をA→Bに投げる必要があるので、通常そんな仕組みがBには無いでしょう。

可能性としては存在するので、BにそのようなAPIがあるか確認してください。
なければ、不可能と考えて良いでしょう。

ーー補足
私がPMなりSEなら、「会員でない方はこちら」ボタンや「会員でない方への案内」を設置する提案をするのみかと思います。

少しメタ的な回答になってしまいますが、不可能であることを説明して提案が受け入れられなかったことは経験上ありません。
どなたから指示を受けて構築しているか等は不明ですが、悩むより代替案を提案する方が早い案件かと思いますよ。
不可能である報告を受けた時、発注元もB側にAPIを作ることを考えるか、簡単な案内で済ますかなら後者を選びます。

投稿2024/06/20 07:45

編集2024/06/20 10:02
sk_

総合スコア92

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

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

0

ケース1:あなたのサイトに、あなたのサイトのユーザー毎にその人のGoogleアカウントIDを保持している場合
あなたのサイトのサーバーサイドプログラムで一旦受けて、Googleのそのページにログインを試み、200か404かを判定して、200ならリダイレクトする。404ならアカウント無しと分かる独自のエラー画面を出す。
Googleアカウントがあってもアカウント次第で200か404かに別れるでなく、Googleアカウントであれば何でも200になるなら、GoogleアカウントID保持済みかどうかの判断でも良いはず。
GoogleアカウントIDだけ分かれば良いのでなくパスワードもないと200にならないなら、パスワードまで登録させるのは社内システムでない限りは無理でしょうね。
APIがある場合はそれ以外のプログラムでのログインが禁止されていることが多いので、利用規約的に大丈夫かは確認が必要です。「プログラムでのログイン禁止だがAPIも無い」というサービスなら「こう言うことをしたいがどうしたら良いか」をサービス提供者に相談する。

ケース2:あなたのサイトに、あなたのサイトのユーザー毎にその人のGoogleアカウントIDを保持していない
一般的には無理。
社内システムでGoogleへは社内Proxyサーバー経由なのであれば、Proxyサーバで特定URLの404レスポンスを差し替えることは可能なはず(経験無いので具体的なアドバイスはできませんが)。社内システムならGoogleアカウントとパスワードを登録させるように変更するのも可能かと思うので、それであればケース1になります。
まあ、社内システムでないなら、直接GoogleにAタグで飛ばすのでなく、中間で「このあとGoogleサイトに飛びますが404の画面が出たら、Googleアカウントをお持ちでないとうことなので、Googleアカウントを作成してGoogleログイン後に再度やってみてください」的なことを書いたページを挟むくらいが現実解かと。

投稿2024/06/20 08:54

otn

総合スコア85458

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

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

0

会員以外閲覧禁止するなら普通は「403 forbidden」では?

追記

特定のサービスを利用時に非会員を404に飛ばす仕組みになっているとして
404のカスタマイズがマニュアルにないのであればできない可能性が高いですね
wordpressはどのレベルで使用者権限をもってどう運用されているのでしょうか・・・
うまくいけばそちらの方で調整ができるのかもしれませんが

投稿2024/06/19 06:41

編集2024/06/19 07:48
yambejp

総合スコア115870

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

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

samasa

2024/06/19 07:06

つまりどういうことですか?404エラーはこちらで何かしているわけではないのですが。
yambejp

2024/06/19 07:07

つまり、単にページが見つからないというだけでは?
yambejp

2024/06/19 07:44

Lhankor_Mhyさん、フォローありがとうございます つまり質問者さんはnotepmサービスのことを質問なさっているということですかね?
Lhankor_Mhy

2024/06/19 07:58

いえ、そうではないです。わかりにくくですみません。出直します。
yambejp

2024/06/19 08:22 編集

あ、ごめんなさい。notepmと同じような仕組みで運用しているって感じですかね? グーグルグループとか便利なので利用していますが、UIとしてアクセス権問題を404で処理するのが意外にスタンダードなのだとしたら、ちょっと変な感じがしますよね ちょっと前に「MIU404」というドラマがあったんですがサイバー攻撃の対応に「404エラー」はセンスないわとだいぶ叩かれてたのを思い出しました(404は実際にはパトカーの番号なのですけど)。あのドラマでは説明として500エラーが発生したときに飛び先ページを作り忘れてて404エラーになるというかなりお粗末な設定だったような・・・
samasa

2024/06/20 05:16 編集

Lhankor_Mhyさんの記事の件です。 【Googleサイトで限定公開サイト】の【外部サイト】へ飛ばすボタンを入れているのですが、 非会員だと上記で画像をアップしたような404エラーになってしまうので、 簡単に言うと、下記を実現したいという事です。 ・会員の方→googleの外部サイトへ飛ばす(こちらはただ単に<a href></a>で対応するだけなので問題ないです。) ・非会員で404エラーになってしまう方→固定ぺージへリダイレクトする ちなみに【Googleサイトで限定公開サイト】の編集権限はないので、そのぺージをどうにかする事はできないので、 こちらが運用しているサイトで、リダイレクトなどをして、何か対策できないかな、と考えているという事です。
yambejp

2024/06/20 05:27

samasaさん 結局それは一般的な内容ではなくサービス提供側の仕組みの問題なので、サービス提供側に直接聞くか、マニュアル・ヘルプ・FAQなどを調べてみるしかありません。 逆に調べられないなら「できない」と思うのが賢明でしょう
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.40%

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

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

質問する

関連した質問