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

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

ただいまの
回答率

87.34%

ロリポップにサイトをアップするもトップ以外404エラー

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 845

score 47

PHPを使用してWEBサイト作り、独自ドメインをとって本番環境(ロリポップ)にサーバーアップしました。
ディレクトリの構成としては

root/dist┬─/js/...(略)
       │
       ├─/img/...(略)
       │
       ├─/css/style.css
       │
       └─/php/┬─index.php
              └─/page/┬─about.php
                      └ contact.php


上記になります。

そして今回の問題点は以下になります。

トップページだけCSSが効いてないまま表示され、その他ページは404エラーになる。

URLを独自ドメインではなくロリポップドメインに置き換えると、全ページ、cssも含め表示される。(独自ドメイン.com/root/dist/php →  ロリポップドメイン.jp/root/dist/php だとおk)

独自ドメインは今日15:00頃ムームードメインでとって、ネームサーバーもその頃に合わせました。

上記を踏まえて、なぜ表示されないかが分かラズ、ご教授いただきたいです。
どうかよろしくお願いいたします。。

質問修正依頼が来ましたので、以下にPHPコードを追記します。

<?php
  //お問い合わせフォームのセッション
  session_start();
  $_SESSION['radio'] = $_POST['radio'];
  $_SESSION['company'] = $_POST['company'];
  $_SESSION['post'] = $_POST['post'];
  $_SESSION['address1'] = $_POST['address1'];
  $_SESSION['address2'] = $_POST['address2'];
  $_SESSION['name'] = $_POST['name'];
  $_SESSION['tel'] = $_POST['tel'];
  $_SESSION['mail'] = $_POST['mail'];
  $_SESSION['text'] = $_POST['text'];
?>
<?php
  //$root = 'http://localhost:3001';
  $root = 'http://独自ドメイン.com/root';
  $DIR = '__DIR__';
?>
<?php
// meta情報
$meta = array (
  'top' => array (
    'title' => '〇〇のサイト',
    'description' => '〇〇のサイトです。',
    'keywords'=> 'テスト',
  ),
  'about' => array (
    'title' => '概要',
    'description' => '〇〇の概要です。',
    'keywords'=> 'テスト',
    'img'=> 'about',
  ),
  'contact' => array (
    'title' => 'お問い合わせ',
    'description' => 'お気軽にご相談、ご連絡ください。',
    'keywords'=> 'テスト',
    'img'=> 'contact',
  )

  );

// 条件式
foreach($meta as $folder => $parts){
  if ($dataVariables['page'] == $folder) {
    $dataVariables['data'] = $parts;
  }
}
?>
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="<?php echo $dataVariables['data']['description']; ?>">
    <meta name="keywords" content="<?php echo $dataVariables['data']['keywords']; ?>">
    <title>
      <?php
      //トップページとそれ以外のページを分岐
        if ('/dist/php/index.php' != $_SERVER['REQUEST_URI']) {
          echo $dataVariables['data']['title'].'|〇〇のサイト';
        } else{
          echo $URL.'〇〇のサイト';
        };
     ?>
    </title>
    <link rel="stylesheet" href="<?php echo $root; ?>/dist/css/style.css">
    <link href="https://use.fontawesome.com/releases/v5.6.1/css/all.css" rel="stylesheet">
    <script type="text/javascript" src="<?php echo $root; ?>/dist/js/main.js"></script>
  </head>
<body>
<header class="Header">
    <h1 class="Header_title"><a class="Header_title_logo" href="<?php echo $root; ?>/dist/php/index.php">O.M.E</a></h1>
    <nav class="Header_nav">
      <ul class="Header_nav_ul">
        <li class="Header_nav_li"><a href="<?php echo $root; ?>/dist/php/index.php">トップ</a></li>
        <li class="Header_nav_li"><a href="<?php echo $root; ?>/dist/php/page/about.php">会社概要</a></li>
      </ul>
      <div class="Header_nav_contact">
        <a class="Header_nav_contact_mail" href="<?php echo $root; ?>/dist/php/contact/contact.php">メールでお問合せ</a>
      </div>
    </nav>
</header>
<?php
// head.phpから配列を呼び出し
$dataVariables = array(
  'page' => 'top',
);
// head.php、header.phpの読み込み
include(__DIR__.'/page/common/head.php');
include(__DIR__.'/page/common/header.php');
?>

<main>省略</main>

<?php include(__DIR__.'/page/common/contact-button.php') ?> 

<?php include(__DIR__.'/page/common/footer.php') ?> 
<?php
// head.phpから配列を呼び出し
$dataVariables = array(
  'page' => 'about',
);
// head.php、header.phpの読み込み
include(__DIR__.'/../page/common/head.php');
include(__DIR__.'/../page/common/header.php');
include(__DIR__.'/../page/common/page-title.php');
?>

<main class="About">
  <!-- 概要写真 -->
  <section class="About_main hide">
  <img src="https://placehold.jp/700x425.png">
  </section>

  <!-- 会社概要とか -->
  <section class="About_company_column hide">
    <dl>
      省略
    </dl>
  </section>

  <!-- Googleマップ -->
  <section class="About_googlemap">
    <iframe src=""></iframe>
  </section>

  <?php include(__DIR__.'/../page/common/contact-button.php') ?> 
</main>

<?php include(__DIR__.'/../page/common/footer.php') ?>
<?php
// head.phpから配列を呼び出し
$dataVariables = array(
  'page' => 'contact',
);
// head.php、header.phpの読み込み
include(__DIR__.'/../page/common/head.php');
include(__DIR__.'/../page/common/header.php');
include(__DIR__.'/../page/common/page-title.php');
?>

<main class="Contact">

  <div class="Contact_head">
    <ol class="Contact_head_state">
      <li class="Contact_head_state_item Contact_head_state_item_active">
        ①入力画面
      </li>
      <li class="Contact_head_state_item">
        ②確認画面
      </li>
      <li class="Contact_head_state_item">
        ③送信完了
      </li>
    </ol>
    <p class="Contact_head_text">以下の項目をご記入し、確認ボタンを押してください。<br>
    高周波誘導加熱装置について詳しく知りたい方は、こちらからどうぞ。<br>
    <a href="<?php echo $root; ?>/dist/php/page/about-hb.php" class="Top_products_link">高周波誘導加熱装置とは? >></a>
    </p>

  </div>

  <section class="Contact_form">
    <form class="" action="confirmation.php" method="post">

      <div class="Contact_form_item">
        <div class="Contact_form_item_text">
          <label for="">用途</label><span>必須</span>
        </div>
        <div class="Contact_form_item_text">
          <input class="radio" type="radio" name="radio" value="生産用" required>生産用
          <input class="radio" type="radio" name="radio" value="試験用" required>試験用
          <input class="radio" type="radio" name="radio" value="資料請求" required>資料請求
        </div>
      </div>
      <div class="Contact_form_item">
        <div class="Contact_form_item_text">
          <label for="">貴社名</label><span>必須</span>
        </div>
        <div class="Contact_form_item_entry">
          <input class="company" type="text" name="company" value="" required><span class="Contact_form_item_example">例) 株式会社〇〇〇〇</span> 
        </div>
      </div>
      <div class="Contact_form_item">
        <div class="Contact_form_item_text">
          <label for="">郵便番号</label><span>必須</span>
        </div>
        <div class="Contact_form_item_entry">
          <input class="post" type="text" name="post" value="" required><span class="Contact_form_item_example">例) 000-0000 ※半角数字</span>
        </div> 
        <div class="Contact_form_item_text">
          <label for="">住所</label><span>必須</span>
        </div>
        <div class="Contact_form_item_entry">
          <input class="address" type="text" name="address1" value="" required><span class="Contact_form_item_example">例) 東京都千代田区五番町3-19</span>
        </div> 
        <div class="Contact_form_item_text">
          <label for="">建物・ビル</label>
        </div>
        <div class="Contact_form_item_entry">
          <input class="address" type="text" name="address2" value=""><span class="Contact_form_item_example">例) 〇〇ビル301</span> 
        </div>
      </div>
      <div class="Contact_form_item">
        <div class="Contact_form_item_text">
          <label for="">氏名</label><span>必須</span>
        </div>
        <div class="Contact_form_item_entry">
          <input class="name" type="text" name="name" value="" required><span class="Contact_form_item_example">例) 山田 太郎</span> 
        </div>
      </div>
      <div class="Contact_form_item">
        <div class="Contact_form_item_text">
          <label for="">TEL</label><span>必須</span>
        </div>
        <div class="Contact_form_item_entry">
          <input class="tel" type="text" name="tel" value="" required><span class="Contact_form_item_example">例) 000-0000-0000</span> 
        </div>
      </div>
      <div class="Contact_form_item">
        <div class="Contact_form_item_text">
          <label for="">E-mail</label><span>必須</span>
        </div>
        <div class="Contact_form_item_entry">
          <input class="mail" type="text" name="mail" value="" required><span class="Contact_form_item_example">例) info@example.com</span> 
        </div>
      </div>
      <div class="Contact_form_item">
        <div class="Contact_form_item_text">
          <label for="">お問い合わせ内容</label><span>必須</span>
        </div>
        <div class="Contact_form_item_entry">
          <textarea placeholder="お問い合わせ内容" name="text" required></textarea>
        </div>
      </div>

      <input class="Contact_form_submit" type="submit" value="確認画面へ">

    </form>
  </section>

</main>

<?php include(__DIR__.'/../page/common/footer.php') ?>

よろしくお願いいたします。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • kei344

    2019/08/05 22:38

    ご自身で書かれたコードを質問文に追記されたほうが回答を得られやすいと思います。

    キャンセル

  • Yariii

    2019/08/05 22:53

    ご指摘ありがとうございます。追記致しました。

    キャンセル

  • kei344

    2019/08/05 22:59

    https://lolipop.jp/manual/user/chg-plan/#p-domain01
    「公開(アップロード)フォルダ」はどういう設定になっていますか。

    キャンセル

  • Yariii

    2019/08/05 23:03

    ありがとうございます。
    現在、root/dist/php/ となっています。

    あと、修正の際ミスがありました。
    上記質問に加えたhead.phpのコードですが
    $root = 'http://独自ドメイン.com';

    $root = 'http://独自ドメイン.com/root';
    です。
    すみません、修正しておきます。、

    キャンセル

回答 1

checkベストアンサー

0

kei344
2019/08/05 22:59
https://lolipop.jp/manual/user/chg-plan/#p-domain01
「公開(アップロード)フォルダ」はどういう設定になっていますか。

uyam12
2019/08/05 23:03
ありがとうございます。
現在、root/dist/php/ となっています。

この設定であれば、http://example.com/は index.php のある階層になります。
そのため、cssはそのドメイン配下に無いので公開されていません。(ロリポップ初期ドメインでしか見られません)

「公開(アップロード)フォルダ」の設定をroot/dist/にすればcssはhttp://example.com/css/style.cssでアクセス可能になります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/08/06 00:08

    ご回答ありがとうございます。
    なるほど、おっしゃる通り公開フォルダ設定に原因がありそうです。

    いまさっき公開フォルダを「root/dist/」に変更し、そしたら403エラーが出てしまうのですが、これはdistにindex.phpファイルを移動するイメージですか?ここはhtaccessのリダイレクトで制御するべきところなのでしょうか?
    (ディレクトリの見栄え的にdistディレクトリにサイトのトップページだけ置くというのが抵抗ありまして。。)

    キャンセル

  • 2019/08/06 00:12

    一般的にドメインを割り当てた箇所にindexが有る物ですが、ご自信のサイト設計です、好きになさってください。

    キャンセル

  • 2019/08/06 01:30

    この度はありがとうございました。
    大変参考になりましたm__m

    キャンセル

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

  • ただいまの回答率 87.34%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る