Title: 同じディレクトリにindex.phpとindex.htmlを混在させる
Last modified: 2008年12月28日

---

# 同じディレクトリにindex.phpとindex.htmlを混在させる

 *  [officegilberto](https://ja.wordpress.org/support/users/officegilberto/)
 * (@officegilberto)
 * [17年、 9ヶ月前](https://ja.wordpress.org/support/topic/%e5%90%8c%e3%81%98%e3%83%87%e3%82%a3%e3%83%ac%e3%82%af%e3%83%88%e3%83%aa%e3%81%abindexphp%e3%81%a8indexhtml%e3%82%92%e6%b7%b7%e5%9c%a8%e3%81%95%e3%81%9b%e3%82%8b/)
 * さくらサーバーでtestというディレクトリでWordpressを使っています。
    事情があっ
   て、同じtestというディレクトリにindex.htmlを置くことになりました。 Wordpressが
   自動的に作った　.htaccess　ファイルがあります。
 * # BEGIN WordPress
    <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /test/
   RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule./
   test/index.php [L] </IfModule> # END WordPress
 * これが原因なのか、test/index.phpにアクセスするとtest/index.htmlが表示されてしま
   います。
    どなたかヒントをいただければ幸いです。
 * またwordpress内のHomeへのリンクをhttp://***/test/ではなく強制的にhttp://***/test/
   index.phpにすることは出来るのでしょうか？

9件の返信を表示中 - 1 - 9件目 (全9件中)

 *  [jim912](https://ja.wordpress.org/support/users/jim912/)
 * (@jim912)
 * [17年、 9ヶ月前](https://ja.wordpress.org/support/topic/%e5%90%8c%e3%81%98%e3%83%87%e3%82%a3%e3%83%ac%e3%82%af%e3%83%88%e3%83%aa%e3%81%abindexphp%e3%81%a8indexhtml%e3%82%92%e6%b7%b7%e5%9c%a8%e3%81%95%e3%81%9b%e3%82%8b/#post-115306)
 * officegilbertoさん、こんにちは。
 * test/index.phpにアクセスしても、WordPressがtest/へリダイレクトさせるため、index.
   htmlが表示されてしまうことになります。
 * index.htmlがディレクトリ名でなく、ファイル名付きのアクセスで良ければ、.htaccess
   に
 *     ```
       DirectoryIndex index.php index.html index.cgi
       ```
   
 * を追加すれば、上記のリダイレクトによる問題は回避できます。
 * HOMEへのリンクの改変は、影響する範囲が広範囲にわたるため、現実的には無理だと思
   われます。
 *  トピック投稿者 [officegilberto](https://ja.wordpress.org/support/users/officegilberto/)
 * (@officegilberto)
 * [17年、 9ヶ月前](https://ja.wordpress.org/support/topic/%e5%90%8c%e3%81%98%e3%83%87%e3%82%a3%e3%83%ac%e3%82%af%e3%83%88%e3%83%aa%e3%81%abindexphp%e3%81%a8indexhtml%e3%82%92%e6%b7%b7%e5%9c%a8%e3%81%95%e3%81%9b%e3%82%8b/#post-115308)
 * jim912さん　ありがとうございます。
 * `DirectoryIndex index.php index.html index.cgi`
 * ですと　index.php　が優先になってしまうんですよね。
    複数の静的なhtmlでサイト
   が出来ていて同じディレクトリ内にWordpress2.7がインストールされている状態です。
   優先順位はあくまでindex.htmlになります。
 * 以前は　http://***/test/index.php　でも表示が出来ていたのですが　2.7　にアップデート
   したらリダイレクトされるようになってしまいました。
 * 別のディレクトリにWPを作り直したほうが良さそうですね。
 *  [keys](https://ja.wordpress.org/support/users/keys/)
 * (@keys)
 * [17年、 8ヶ月前](https://ja.wordpress.org/support/topic/%e5%90%8c%e3%81%98%e3%83%87%e3%82%a3%e3%83%ac%e3%82%af%e3%83%88%e3%83%aa%e3%81%abindexphp%e3%81%a8indexhtml%e3%82%92%e6%b7%b7%e5%9c%a8%e3%81%95%e3%81%9b%e3%82%8b/#post-115475)
 * 同様の問題に悩んでたところ、こちらのスレッドと重複してたので、続いて質問させて
   ください。
 * 既存の静的なhtmlサイトを、wp2.7で構築したサイトにリニューアルしようとしています。
 * index.htmlなどhtmlサイトを公開したままの状態で、同じくルート階層にwpをインストール
   し、ドメイン/index.phpにアクセスしてwpサイトの最終動作確認をしたいと思っており
   ますが、officegilbertoさんと同様、index.phpにアクセスしても、ドメイン/　にリダイレクト
   されhtmlサイトが表示されてしまいます。
    （wpをインストールしたデフォルトの状態
   でも）
 * wp2.5の時にはこの方法で、index.htmlを残したまま、index.phpにも問題なくアクセス
   しwpサイトを確認できたのですが、バージョン2.7の仕様？なのかリダイレクトされて
   しまいます。
 * `DirectoryIndex index.php index.html`
    とすれば、index.phpが優先されるのは分か
   りますが、それではリニューアル前の最終確認はできません。
 * どなた様か、2.7でも、index.htmlを残したまま、index.php（wpサイト）を表示させる
   方法をご存知ないでしょうか。
 * どうぞ宜しくお願いいたします。
 *  [jim912](https://ja.wordpress.org/support/users/jim912/)
 * (@jim912)
 * [17年、 8ヶ月前](https://ja.wordpress.org/support/topic/%e5%90%8c%e3%81%98%e3%83%87%e3%82%a3%e3%83%ac%e3%82%af%e3%83%88%e3%83%aa%e3%81%abindexphp%e3%81%a8indexhtml%e3%82%92%e6%b7%b7%e5%9c%a8%e3%81%95%e3%81%9b%e3%82%8b/#post-115476)
 * keysさん、こんにちは。
 * とりあえずの表示確認であれば、wp-includes/canonical.phpの208行目
 *     ```
       $redirect['path'] = preg_replace('|/index.php/*?$|', '/', $redirect['path']);
       ```
   
 * をコメントアウトするとindex.phpのまま表示されるようになります。あるいは、286行
   目にredirect_canonicalというフックがありますので、プラグインでの実装も可能です。
 * ただ、WordPressルートへのリンクは変わらないので一方通行的になってしまいますが。
 *  [keys](https://ja.wordpress.org/support/users/keys/)
 * (@keys)
 * [17年、 8ヶ月前](https://ja.wordpress.org/support/topic/%e5%90%8c%e3%81%98%e3%83%87%e3%82%a3%e3%83%ac%e3%82%af%e3%83%88%e3%83%aa%e3%81%abindexphp%e3%81%a8indexhtml%e3%82%92%e6%b7%b7%e5%9c%a8%e3%81%95%e3%81%9b%e3%82%8b/#post-115477)
 * jim912さん、こんにちは
    いつも的確なお答えをありがとうございます。
 * wp-includes/canonical.phpの208行目をコメントアウト
    で解決できました。
 * 完璧です。ありがとうございました。
 * しかし自分の知識レベルを完全に超えているので、別の疑問が湧いてきました。
    なぜ
   このように、ここを治せば解決できるとお分かりになったのでしょうか‥ どうやったら、
   原因がwp-includesフォルダの中のcanonical.phpファイルの中の208行目にあるなんて
   見つけられるのでしょう‥ [redirect]　とか、それらしきキーワードでWordPressファイル
   全体を検索するのでしょうか？
 * 少しでもWordPressを理解する為には、原因を見つけるスキルが重要だと痛感しました。
   
   そのスキルが付けば一つ上のランクに上がれるような気がしました。
 * jim912さん、どうかそのヒントみたいな物でもお教え頂けませんでしょうか。
    お忙しい
   中たいへん恐縮ですが、どうぞ宜しくお願いいたします！
 *  [Yuriko IKEDA](https://ja.wordpress.org/support/users/lilyfan/)
 * (@lilyfan)
 * [17年、 8ヶ月前](https://ja.wordpress.org/support/topic/%e5%90%8c%e3%81%98%e3%83%87%e3%82%a3%e3%83%ac%e3%82%af%e3%83%88%e3%83%aa%e3%81%abindexphp%e3%81%a8indexhtml%e3%82%92%e6%b7%b7%e5%9c%a8%e3%81%95%e3%81%9b%e3%82%8b/#post-115478)
 * > どうやったら、原因がwp-includesフォルダの中のcanonical.phpファイルの中の208
   > 行目にあるなんて見つけられるのでしょう‥
 * これは WordPress のソースコードをある程度読むことが必要ですね。index.html → index.
   php という変換 (Canonical URL 機能) は canonical.php で実現しているので、この
   ソースを読めば、どこかは当たりがつきます。
 * 元質問ですが、元の静的ページ自体も WordPress で提供する手があります。home.php
   というテンプレートを用意するか、固定ページをフロントページ (トップページ) にすると、
   希望の動作になるでしょう。
 *  [keys](https://ja.wordpress.org/support/users/keys/)
 * (@keys)
 * [17年、 8ヶ月前](https://ja.wordpress.org/support/topic/%e5%90%8c%e3%81%98%e3%83%87%e3%82%a3%e3%83%ac%e3%82%af%e3%83%88%e3%83%aa%e3%81%abindexphp%e3%81%a8indexhtml%e3%82%92%e6%b7%b7%e5%9c%a8%e3%81%95%e3%81%9b%e3%82%8b/#post-115479)
 * lilyfanさん、ありがとうございます。
 * index.html → index.php という変換を、(Canonical URL 機能)と言う
    って事を知って
   いなければ、canonical.phpまでたどりつけないですね。 これはWordPress以前の問題
   でしょうか‥
 * ん〜奥が深すぎる。。
    日々精進ですね。
 *  [jim912](https://ja.wordpress.org/support/users/jim912/)
 * (@jim912)
 * [17年、 8ヶ月前](https://ja.wordpress.org/support/topic/%e5%90%8c%e3%81%98%e3%83%87%e3%82%a3%e3%83%ac%e3%82%af%e3%83%88%e3%83%aa%e3%81%abindexphp%e3%81%a8indexhtml%e3%82%92%e6%b7%b7%e5%9c%a8%e3%81%95%e3%81%9b%e3%82%8b/#post-115480)
 * keysさん、こんにちは。
 * > index.html → index.php という変換を、(Canonical URL 機能)と言う
   >  って事を知
   > っていなければ、canonical.phpまでたどりつけないですね。
 * まあ、細かい間違いはおいといて。。。
 * 私自身は、それほど練熟しているわけではなく、canonical.phpも今回辿り着くまでは
   ほとんど開いたこともありません。今回の回答については、かなりベタですが、以下の
   ような感じで見つけています。
    1. 実行ロジックの中で、だいたいのあたりをつけ、exit;を割り込ませて、リダイレクト
       が実行されるポイントを割り出す
    2. そのポイントで行われているソースを追う。
    3. 対応策を検討する。
 * ちなみに、WordPressの実行ロジックの大元は、index.phpの次に読み込まれるwp-blog-
   header.phpの
 *     ```
       require_once( dirname(__FILE__) . '/wp-load.php' );
   
       	wp();
   
       	require_once( ABSPATH . WPINC . '/template-loader.php' );
       ```
   
 * ３行で、
 *     ```
       require_once( dirname(__FILE__) . '/wp-load.php' );
       ```
   
 * が、wp-config.php、wp-settings.phpを読み込み、初期設定や必要なファイルの読み込み
   を行います。
 *     ```
       wp();
       ```
   
 * は、リクエストされたURLを元に、データベースへのクエリーを生成し、該当する投稿・
   ページを抽出・変数へのセットを行います。
 *     ```
       require_once( ABSPATH . WPINC . '/template-loader.php' );
       ```
   
 * は、名前からも想像つきますが、テーマのテンプレートを読み込み、表示を司る部分です。
 * 今回は、おそらくURLのパース時あたりで行うのではないかと考え、まずはwp();内の各所
   でexit;させてみるも、ハズレでここではリダイレクト前のままです。
 * かと言って、テンプレートが読み込まれてレンダリングが始まってしまうとheaderによる
   リダイレクトは出来ませんから、この間と言うことになります。
 * で、さらに絞り込んでいくとtemplate-loader.phpの
 *     ```
       do_action('template_redirect');
       ```
   
 * というフックでリダイレクトが行われることが分かります。
 * では、デフォルトのフックが登録されるdefault-filter.phpから実行関数がたどれるか
   と思いきや、このファイルに記述されているwp_old_slug_redirectという関数は全く違う
   もの。
 * 他にこのフックで行われているものがあるはずなので、フックを管理・記憶している$
   wp_filterという変数をvar_dumpで表示させてみると、もう１つredirect_canonicalという
   関数がフックされていることが分かります。
 * で、あとは、この関数の記述されている場所を探し出して、ソースを読み、対応策を導き出す
   だけです。
 * $wp_filterであったり、WordPressがどのように起動して実行されていくかなどは、プラグ
   インを作ったりすると、ソースを読むことが必須になるため、自然と覚えていく（経験
   と検索（爆）で）ものと思います。
 *  [keys](https://ja.wordpress.org/support/users/keys/)
 * (@keys)
 * [17年、 8ヶ月前](https://ja.wordpress.org/support/topic/%e5%90%8c%e3%81%98%e3%83%87%e3%82%a3%e3%83%ac%e3%82%af%e3%83%88%e3%83%aa%e3%81%abindexphp%e3%81%a8indexhtml%e3%82%92%e6%b7%b7%e5%9c%a8%e3%81%95%e3%81%9b%e3%82%8b/#post-115481)
 * jim912さん、いや、jim912師匠と勝手に呼ばせていただきます（笑）
 * 非常に詳しく解説いただきありがとうございます。
    こういった、発想の手順を教えて
   頂くのは本当にありがたいです。
 * しかし正直なところ、ここまで詳しく解説いただいてもレベルが高すぎて理解しきれない
   部分が多いですが、少しづつでも壁を乗り越えていきたいと意欲が湧いてきます。
    貴重
   なご説明ありがとうございました。
 * まだまだ未熟ですが、今後ともよろしくお願いします。

9件の返信を表示中 - 1 - 9件目 (全9件中)

 トピック「同じディレクトリにindex.phpとindex.htmlを混在させる」には新たに返信する
ことはできません。

## タグ

 * [index.html](https://ja.wordpress.org/support/topic-tag/index-html/)

 * フォーラム: [使い方全般](https://ja.wordpress.org/support/forum/how-to-and-troubleshooting/)
 * 9件の返信
 * 4人の参加者
 * 最後の返信者: [keys](https://ja.wordpress.org/support/users/keys/)
 * 最後の活動: [17年、 8ヶ月前](https://ja.wordpress.org/support/topic/%e5%90%8c%e3%81%98%e3%83%87%e3%82%a3%e3%83%ac%e3%82%af%e3%83%88%e3%83%aa%e3%81%abindexphp%e3%81%a8indexhtml%e3%82%92%e6%b7%b7%e5%9c%a8%e3%81%95%e3%81%9b%e3%82%8b/#post-115481)
 * 状態: 未解決

## トピック

### 人気のトピック

### 返信がないトピック

### サポート関連ではないトピック

### 解決済みのトピック

### 未解決のトピック

### すべてのトピック
