[追記 15:40]
エイプリルフール向けトップページのトリックは終了させました。以下の文章はそのまま残しておきます。
4月1日限定の特別仕様のホームページに模様替えをいたしました。
特別仕様のホームページはコチラ!
昨今のヘビー級なサイズの画像数、激重なJavaScriptへのアンチテーゼとも言うべき、超シンプルなホームページを目指して作成しました。いかがでしょうか?
ここから仕組み的な説明です。
特別仕様のホームページと通常の(WordPress製の)WebページはURLは同じ https://mewotne.jp で振り分けるようにしています。各所で記述されたリンクは https://mewtone.jp になっています。このURLで外部からやってきた際には特別仕様のホームページへリダイレクトさせ、特別仕様のホームページから遷移した場合とURLにパスが存在する場合は通常のWebページを表示するようにしています。WordPressのindex.phpのコードに対して以下のような修正を行いました。やっていることは単純ですね。こんな仕掛けでもエイプリルフールネタ(あ、言っちゃった)を仕込めるのですよ。リアルガチ((c)出川哲朗)なプログラムを作ろうとすると覚えることが多くて大変ですが、ちょっとしたトリックならばちょっとした知識でできるので(と言いつつセキュリティーはしっかりと覚えなければならないですが)、みなさんどんどんプログラムを覚えていきましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
// original code is https://stackoverflow.com/questions/6768793/get-the-full-url-in-php function url_origin($s, $use_forwarded_host = false) { $ssl = (!empty($s['HTTPS']) && $s['HTTPS'] == 'on'); $sp = strtolower($s['SERVER_PROTOCOL']); $protocol = substr($sp, 0, strpos($sp, '/')) . (($ssl) ? 's' : ''); $port = $s['SERVER_PORT']; $port = ((!$ssl && $port == '80') || ($ssl && $port == '443')) ? '' : ':' . $port; $host = (($use_forwarded_host && isset($s['HTTP_X_FORWARDED_HOST'])) ? $s['HTTP_X_FORWARDED_HOST'] : ((isset($s['HTTP_HOST']) ? $s['HTTP_HOST'] : null))); $host = isset($host) ? $host : $s['SERVER_NAME'] . $port; return $protocol . '://' . $host; } function full_url($s, $use_forwarded_host = false) { return url_origin($s, $use_forwarded_host) . $s['REQUEST_URI']; } $absolute_url = full_url($_SERVER); $origin_url = 'https://mewtone.jp/'; $renewal_url = 'https://mewtone.jp/20180401/'; // HTTP_REFERERが https://mewtone.jp/20180401/ ではなく、かつ、$absolute_url が https://mewtone.jp/ だったら期間限定ホームページへリダイレクトする if ((strtolower($_SERVER['HTTP_REFERER']) !== $renewal_url) && ($absolute_url === $origin_url)) { header('Location: ' . $renewal_url); exit; } |