Cocoonフォーラム

サイト内検索
書き込みの前に以下の3点をご確認ください。
  1. 1つのトピックにつき1つの質問を書き込んでください
  2. 不具合・カスタマイズ対象ページのURLを提示高速化を無効にしてください
  3. 該当部分のキャプチャ・環境情報とともに書き込んでいただけると助かります

何を書き込んだら良いか分からない場合は、以下のテンプレートをコピペしてご利用ください。

不具合・カスタマイズ対象ページのURL:

相談内容:

不具合の発生手順:

解決のために試したこと:

※文字だけでは正しく伝わらない可能性があるため、スクショ画像の添付もお願いします。
※高速化設定をしている場合は無効にしてください。
環境情報:

※↑こちらに「Cocoon設定 → テーマ情報」にある「環境情報」を貼り付けてください。

環境情報の取得方法はこちら。
https://wp-cocoon.com/theme-report/
高速化設定を無効にするにはこちら。
https://wp-cocoon.com/theme-trouble/

フォーラム利用ガイドリンク

  1. フォーラムガイドライン
  2. よくある質問と答え(FAQ)
  3. サポート対象外のケース
  4. 原因不明の不具合用トラブルシューティング
  5. トピックにHTMLを貼り付ける方法(推奨ツール:notepad.pw
  6. 真っ白画面でのエラーメッセージの確認方法
  7. ブラウザ環境チェックツール
  8. Cocoonカスタマイズ依頼

フォーラム質問後、問題等が解決した場合は結果を書き込んでいただけると幸いです。同様の問題で調べている方には、結果が一番気になる部分となります。

特定のページからの移動のみページを表示...
 
共有:
通知
すべてクリア

[解決済] 特定のページからの移動のみページを表示する方法

11 投稿
3 ユーザー
5 Reactions
1,797 表示
(@takaaa)
Eminent Member Registered
結合: 3年前
投稿: 20
Topic starter  

ブックマークからや直接URLの検索ではエラーになるようにしたいです。

調べてみると.htaccessというファイルをいじる必要がありそうですが素人がいじらない方がよさそうです。(.htaccess で特定のURLを経由したアクセスのみ許可する方法|HTML|WEBデザインの小ネタとTIPSのまとめサイト「ウェブアンテナ」 (webantena.net)

また上記サイト内の

demoA/フォルダ内に.htaccess ファイルを用意して以下の記述を行い、サーバーにアップします。

がサーバー側のファイルのどこに作成すればいいかわからない。

 

.htaccessの詳しい説明やほかのやり方などあればアドバイスを下さい。

 

参拝 | デジタル神社 (digital-jinja.com)の緑のボタン2つから参拝中 | デジタル神社 (digital-jinja.com)に移る過程を想定しています。


   
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17211
 
投稿者:: @takaaa

また上記サイト内の

demoA/フォルダ内に.htaccess ファイルを用意して以下の記述を行い、サーバーにアップします。

がサーバー側のファイルのどこに作成すればいいかわからない。

これはあくまでサンプルなので、今回の件には当てはまらないような気がします。

投稿者:: @takaaa

.htaccessの詳しい説明やほかのやり方などあればアドバイスを下さい。

こういうのはしっかりとした解説ページを読むのが一番の近道かと思います。
https://www.kagoya.jp/howto/it-glossary/web/htaccess/
https://murashun.jp/article/programming/htaccess/htaccess-writing.html
https://qiita.com/sanogemaru/items/7e5bd6e8dc9b04c9978e

自分で行うのが手に余る場合は、書かれている通り触らない方が無難かと思います。
復旧方法を知らずに触るとサイトの全ページがエラーになるので。

 

 

 


   
(@takaaa)
Eminent Member Registered
結合: 3年前
投稿: 20
Topic starter  

わいひらさんアドバイスありがとうございます。

https://www.kagoya.jp/howto/it-glossary/web/htaccess/

の設置場所の項目を読む感じやはり

投稿者:: @takaaa

demoA/フォルダ内に.htaccess ファイルを用意して以下の記述を行い、サーバーにアップします。

みたいなことが必要な気もしますが、、、

 

サーバー側のサイトフォルダのpublic_html内に.htaccessはあるのですがここに

1
2
3
4
SetEnvIf REFERER "www.webantena.net/demoB" ref_ok
Order Deny,Allow
Deny from all
Allow from env=ref_ok

を追加すると全体に適応されそうで違う気がしました。

そこでpublic_html内にdemoB/demoA(例)と2つフォルダを作り最初はAだけに次に両方に.htaccessを作り上記のコード(?)を足しました。

がエラーになりました。

元々あった.htaccess内のコードもコピペしてみましたがダメでした。

 

やはり難しそう(笑)

 

今は足したものを消してサイトは戻りました。

 

 


   
(@akira)
Famed Member Registered
結合: 7年前
投稿: 1657
 

厳密な判定は不要に思えるので、PHP でやるのも手かなと思いました。

これを子テーマの functions.php に追加します。

https://notepad.pw/share/4yb0i0y2b

エラーを出すようにとのことでしたので、404 エラーを出すようにしています。ただ、↓ のページへのリダイレクトでもいいかなと思いました。

https://digital-jinja.com/sanpai/

This post was modified 3年前 by Akira

   
わいひら reacted
(@takaaa)
Eminent Member Registered
結合: 3年前
投稿: 20
Topic starter  

akiraさんアドバイスありがとうございます。

確かにリダイレクトの方が利便性がいい気がしますね。

その場合はどうしたらいいですか?


   
(@akira)
Famed Member Registered
結合: 7年前
投稿: 1657
 

これでどうでしょうか。

https://notepad.pw/share/q2clcrhdh


   
わいひら reacted
(@takaaa)
Eminent Member Registered
結合: 3年前
投稿: 20
Topic starter  

@akira 右のボタンからは上手く行きました。でも左のボタンはstripe決済経由でURLが違うので上手く行かないことに気づきました。そこで以下のように変更してみましたが全てがリダイレクトされてしまいます。

https://notepad.pw/share/u6r15nnn

$refererにインデックス配列で入れてforループで処理出来てると思うのですが、、、


   
(@akira)
Famed Member Registered
結合: 7年前
投稿: 1657
 

@takaaa さん

左のボタンは別のページに移動するのですね。

$referer を配列にする場合は、in_array() の使用が頭に浮かびました。

https://notepad.pw/share/goab3kto9

そもそも、配列にする必要はあるかな?とも思うので、こちらでもいけると思います。

https://notepad.pw/share/s2r1bbntz

This post was modified 3年前 by Akira

   
わいひら reacted
(@takaaa)
Eminent Member Registered
結合: 3年前
投稿: 20
Topic starter  

@akira 決済のURLが複数あるので配列がいいと思いました。しかし上手く行きません。

調べてみるとリンクの為のURLと決済画面(チェックアウト)のURLが違いました。そっちのURLにすればいいと思いましたがしかしこの決済画面のURLは毎回違うので教えてくれたやり方だと上手く行かないかもしれません。

【WordPress】特定のページからの遷移のみページを表示する (teratail.com)

このページのアンサーで

購入済みになった時点でセッション変数にそれを表す変数を持たせておくなりして
それによってプラグインのフィルタフックやテーマのテンプレートでアクセス制限をしましょう

とありましたが役立ちますか?

 

ややこしい事になってしまって申し訳ありません。


   
(@akira)
Famed Member Registered
結合: 7年前
投稿: 1657
 

@takaaa さん

あとは takaaa さんご自身でなさるか、どなたかにご依頼ください。フォーラムでは対応が難しいです。

一応、私の頭に浮かんだ選択肢を書いておきます。

● 正規表現とリファラで判定

Stripe の URL は正規表現で書き、リファラで判定します。

ただし、in_array() は検索する値に正規表現を使えないため、他の関数を使う必要があります。また、teratail に書かれているとおり、リファラでは厳密な判定はできません。

● Stripe の API を使う

Stripe には API があるので、それを使います。

https://stripe.com/docs/api?lang=php

This post was modified 3年前 3回 by Akira

   
わいひら reacted
(@takaaa)
Eminent Member Registered
結合: 3年前
投稿: 20
Topic starter  
投稿者:: @akira

● 正規表現とリファラで判定

こちらを調べてpreg_grep関数を使って色々試してみましたがやり方が悪いのか、上手く行きませんでした。

phpのリファラはアクセス元がわかる!取得から書き換えまで解説 | 侍エンジニアブログ (sejuku.net)

stripeの決済画面からはリダイレクトでページに帰ってくる仕組みのようなのでこの記事にあるようにリファラはそもそも機能しないのかもしれません。

APIは理解するまで相当時間がかかりそうなので、、、(^^;

それで考えた結果、アクセスするページを分けることにしてブックマークやURL検索ではリダイレクトさせるようにしました。

これで様子を見ようと思います。

わいひらさん、akiraさんアドバイスをありがとうございました。

 


   
わいひら reacted
共有:

問題の解決に至った場合には、トピック冒頭の「解決済み」をクリックしていただけますと幸いです。

また、有用な回答があった場合は返信右下にある「いいね!」もご活用ください。回答者の励みになります。

「いいね!」機能はフォーラム登録者のみが利用できる機能です。

CC BY-ND 2.1)準じていれば(リンクを貼っていただければ)転載も自由です。カスタマイズ記事を書く際にコード等をコピペ利用していただいて構いません。

フォーラムの使い方がよくわからない場合は、テストトピックで自由にテストしていただいて構いません。

最近の書き込みはこちら。

詳細なカスタマイズ依頼をするならこちら。

タイトルとURLをコピーしました