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

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

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

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

2674閲覧

【WordPress】特定のページからの遷移のみページを表示する

aweshin

総合スコア20

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2021/10/18 04:49

編集2021/10/18 05:06

前提・実現したいこと

ワードプレス+PHP初心者です。
WP-Membersというプラグインを使って有料会員制サイトを作りたいと思っています。
課金は、WP Full Stripeを使い、購読するボタンを押すとWP-Membersの新規登録画面(https://example.com/create-account)に遷移させます。

しかし、上記URLベタ打ちで、Stripeでの決済を経由せずに、直接WP-Membersの新規登録画面に行けてしまうため、必ず指定のページからの遷移でないと表示できないようにするために、次のような対策を行いました。

試したこと

ルートの.htaccessファイルを次のように書き換えましたが、うまくいきませんでした。

# BEGIN WordPress # "BEGIN WordPress" から "END WordPress" までのディレクティブ (行) は # 動的に生成され、WordPress フィルターによってのみ修正が可能です。 # これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。 <IfModule mod_rewrite.c> RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress SetEnvIf Referer "^https://example.com/create-account" deny_ref order allow,deny allow from all deny from env=deny_ref

どのように書き換えたら良いのか、そもそもルートディレクトリの.htaccessの書き換えでいいのか、ご教授いただけますでしょうか。

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

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

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

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

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

guest

回答1

0

ベストアンサー

リファラは容易に偽装可能かつ、ブラウザがプライバシー云々の問題で
一切送信しないようにしている場合もあるので
それで判定するのはあまりお勧めできません

また、WordPressはあるページを表示するためのURLは
複数ある場合が多いのでURLでアクセス制限の判定をするのもお勧めできません
(WPの多くのページのパーマリンクはGETパラメータを使ったURLでの書き換えが可能です)

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

投稿2021/10/18 06:47

編集2021/10/18 06:49
KazuhiroHatano

総合スコア7819

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

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

aweshin

2021/10/18 10:01

回答ありがとうございます。 フィルタフックによって、意図した実装ができました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問