サポート » 使い方全般 » 404エラーページのデザイン分岐について

  • 解決済 suzuki_macboy

    (@suzuki_macboy)


    お世話になります。
    404ページの分岐を行いたいと思い、調べてみましたが

    
    <?php
      $my_url='https://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
      $pattan_url =  preg_quote(home_url().'/sample01','/');
    if  (preg_match('/'.$pattan_url.'.*/', $my_url)) {
      include(TEMPLATEPATH.'/404-sample01.php');
      } else {
      include(TEMPLATEPATH.'/404-other.php');
      }
      ?>

    このようにエラーページのデザインを2つに分岐させ方は
    わかったのですが、3つに分岐させる場合はどのように記述したらよいでしょうか。

    例えば、
    /sample01/→404-sample01.php
    /sample02/→404-sample02.php
    それ以外→404-other.php
    のようにしたいです。

    ご教授願います。

    • このトピックは suzuki_macboyが3 ヶ月、 2 週間前に変更しました。
    • このトピックは suzuki_macboyが3 ヶ月、 2 週間前に変更しました。
    • このトピックは suzuki_macboyが3 ヶ月、 2 週間前に変更しました。
    • このトピックは suzuki_macboyが3 ヶ月、 2 週間前に変更しました。
6件の返信を表示中 - 1 - 6件目 (全6件中)
  • コードはb-quoteではなくcodeを押して書きましょう。

    <?php
    $my_url='https://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
    $pattan_url = preg_quote(home_url().'/sample01′,'/');
    if (preg_match('/'.$pattan_url.'.*/', $my_url)) {
    include(TEMPLATEPATH.'/404-sample01.php');
    } else if (//条件) {
    include(TEMPLATEPATH.'/404-sample02.php');
    } else { include(TEMPLATEPATH.'/404-other.php');
    }
    ?>

    manbo様

    回答ありがとうございます。

    この記述の場合、例えば、
    http://●●●●.co.jp/sample01/のディレクトリの場合は404-sample01.php、
    http://●●●●.co.jp/sample02/のディレクトリの場合は404-sample02.phpが表示され、

    それ以外のディレクトリのページでは404-other.phpが表示されるということでしょうか。

    • この返信は3 ヶ月、 2 週間前に  suzuki_macboy さんが編集しました。
    • この返信は3 ヶ月、 2 週間前に  suzuki_macboy さんが編集しました。

    //条件の所に適切に指定すればできると思います。
    ちゃんと直したつもりでしたがsample01の後に全角文字がはいっちゃってますね。

    manbo 様

    申し訳ありません。
    (//条件)の記述がわかりません。
    教えていただけないでしょうか

    こちらもどのような条件なのか分からないので推測ですが

    <?php
    $my_url='https://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
    $pattan1_url = preg_quote(home_url().'/sample01','/');
    $pattan2_url = preg_quote(home_url().'/sample02','/');
    if (preg_match('/'.$pattan1_url.'.*/', $my_url)) {
    include(TEMPLATEPATH.'/404-sample01.php');
    } else if (preg_match('/'.$pattan2_url.'.*/', $my_url)) {
    include(TEMPLATEPATH.'/404-sample02.php');
    } else { include(TEMPLATEPATH.'/404-other.php');
    }
    ?>

    こういうことでしょうか?

    manbo 様

    うまく表示できました。
    お手数をおかけして申し訳ありませんでした。

    ありがとうございました!

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • このトピックに返信するにはログインが必要です。