WordPressでの質問です。

http://www.xxxxxx.com/blog/
配下にWordPressをインストールしました。

この状態ですが、サイトのルート自体は
http://www.xxxxxx.com/
に指定してします。

パーマリンクを使って以下のようなページへのリンクを作りました。
http://www.xxxxxx.com/about/
http://www.xxxxxx.com/link/
http://www.xxxxxx.com/work/
この状態で、実際のaboutフォルダやlinkフォルダを作成し、その中のindex.phpにて
require('../blog/wp-blog-header.php')
と記載したのですが、実際に飛ぶと500エラーになってしまいます。

何か手順が足りてないのでしょうか、それともそういう指定がそもそも無理なのでしょうか……
このような指定の仕方をしたことがある方やWordPressマスターな方、教えてください。。。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2012/08/30 21:41:32
  • 終了:2012/09/06 21:45:03

ベストアンサー

id:fut573 No.2

fut573回答回数195ベストアンサー獲得回数542012/09/02 07:02:10

ポイント50pt

自己解決なさったみたいなので、この現象について手持ちのサーバー数台でちょっと調べてみたところ
wordpressでパーマリンクを変更した場合、.htaccessに以下のような記述が追加されます


RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule 具体的な処理

これは、ファイルやディレクトリが存在しない時だけ、ルールを適用するという記述です。
(つまり、ファイルやディレクトリの有無で処理が変わる)
この状態で http://www.xxxxxx.com/link/した場合大抵のサーバーでは
1.ディレクトリlink が存在する場合、ディレクトリを表示
2.ディレクトリがない場合、固定ページlinkを表示(link.htmlの有無は関係なし)
という状態でした。
しかしhtmlファイルの拡張子を隠す設定をしているサーバー等では、固定ファイルよりも、link.htmlを優先して表示しうるようです。
今回のケースの場合、この手の設定が有効になっていた可能性があります。

id:tsuyoring

サーバー数台での検証、は恐れ入ります……汗

拡張子の設定によって動きが変わるんですね。
自分も通常端末のWindowsおよびMac持ってますが、ともにこの設定はありますね。
Linux系だとそういう設定もなく、このような現象が起きたりしないのかな……

諸々調べてくださり、内容についても非常に納得感のいく回答だったので、ベストアンサーとさせていただきます。

2012/09/06 23:46:52

その他の回答(1件)

id:oil999 No.1

oil999回答回数1728ベストアンサー獲得回数3202012/09/01 07:21:19

ポイント50pt

相対パスの指定が間違っているのではありませんか?
dirname(__FILE__) によって自身のモジュールの絶対パスを取得し、それからd.phpまでの位置を連結してrequireしてみてください。
http://d.hatena.ne.jp/uriyuri/20090719/1248006052

id:tsuyoring

すみません、こちらの回答の内容を試す前に解決してしまいました。
ただ、内容については勉強させていただきます。
ありがとうございます!

2012/09/01 17:36:58
id:fut573 No.2

fut573回答回数195ベストアンサー獲得回数542012/09/02 07:02:10ここでベストアンサー

ポイント50pt

自己解決なさったみたいなので、この現象について手持ちのサーバー数台でちょっと調べてみたところ
wordpressでパーマリンクを変更した場合、.htaccessに以下のような記述が追加されます


RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule 具体的な処理

これは、ファイルやディレクトリが存在しない時だけ、ルールを適用するという記述です。
(つまり、ファイルやディレクトリの有無で処理が変わる)
この状態で http://www.xxxxxx.com/link/した場合大抵のサーバーでは
1.ディレクトリlink が存在する場合、ディレクトリを表示
2.ディレクトリがない場合、固定ページlinkを表示(link.htmlの有無は関係なし)
という状態でした。
しかしhtmlファイルの拡張子を隠す設定をしているサーバー等では、固定ファイルよりも、link.htmlを優先して表示しうるようです。
今回のケースの場合、この手の設定が有効になっていた可能性があります。

id:tsuyoring

サーバー数台での検証、は恐れ入ります……汗

拡張子の設定によって動きが変わるんですね。
自分も通常端末のWindowsおよびMac持ってますが、ともにこの設定はありますね。
Linux系だとそういう設定もなく、このような現象が起きたりしないのかな……

諸々調べてくださり、内容についても非常に納得感のいく回答だったので、ベストアンサーとさせていただきます。

2012/09/06 23:46:52
  • id:fut573
    僕の場合は、それをやる場合は、wordpressで about/ link/ work/ という固定ページを作成しちゃうんですが、それではいけない理由がなにかあるのでしょうか?
  • id:tsuyoring
    固定ページの作成はおこなっています。
    その上で、パーマリンク設定を「投稿名」にすると、
    たしかに /about/や/link/のアドレスに設定されるのに、
    何故か表示されないんです。NotFoundになってしまって。
    (それぞれの固定ページ上でも「about」や「link」がパーマリンク部分にはいっています。)


    パーマリンクをデフォルトにすると、
    http://www.xxxxxx.com/?p=13
    みたいな感じになって、実際にアクセスもできるんですが・・・
  • id:fut573
    うーん。 http://www.xxxxxx.com/に.htaccessをコピーするという作業は済んでいますか?
    cf http://msweb.moo.jp/wordpress/135/
  • id:tsuyoring
    .htaccessのコピー作業も済んでおりました。

    自分でもいろいろおこなったところ、解決いたしました。
    ルート直下に、WordPress導入前に作成していた「about.html」「link.html」「work.html」が存在しており、
    こちらのファイルを削除したところ正常に見に行くようになりました。
    (同名のフォルダがあるといけないという記述はよく見かけていたのですが、まさかHTMLファイルでも駄目だとは。。)

    お騒がせしました。
    fut573さん、親切にいろいろと調べていただきありがとうございました^^
    #できればベストアンサー?登録したいので、何か回答いただけると……
    (はてなの仕組みもあまり良くわかってないので、変なこと言ってたらすみません。)

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません