サポート » マルチサイト » サブディレクトリでマルチサイト化したあとのパスの変更

  • 解決済 namizaki

    (@namizaki)


    はじめまして。
    現在、サブディレクトリでマルチサイト化したテストサイトがあります。
    /hoge/を作りインストールしました。

    新しくサイトを追加すると、/hoge/bar/のようなパスになるのですが、
    パスにつく/hoge/を取り、topをドメイン名、各子サイトをドメイン名/○○○/
    で表示したいのですが、どのような方法が考えられますでしょうか?

    ドキュメントルートにインストールすることが出来ない状況です。

    自分なりに検索してみたのですが、
    参考サイトなどを見つけられずこちらで質問させていただきました。

    アドバイスをいただければ幸いです。
    よろしくお願いいたします。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • モデレーター gatespace

    (@gatespace)

    こんにちは。
    状況から察するに、
    「WordPress を専用ディレクトリに配置する」を行った上で、
    マルチサイト化したい、と言うことでしょうか?
    (例:HOMEが http://example.com/ WordPressを http://example.com/wp/ に設置)
    http://wpdocs.sourceforge.jp/Giving_WordPress_Its_Own_Directory

    Codexにもある通り、WordPressを専用ディレクトリに配置した場合、マルチサイト化できません。

    スレッド開始 namizaki

    (@namizaki)

    ご回答ありがとうございます。
    説明不足ですいません。

    諸事情があり、ドキュメントルート直下にインストールすることができません。
    専用ディレクトリにインストールし、サブディレクトリでマルチサイト化しました。

    example.com/wp/にインストールしました。
    一般設定のWordPressアドレスとサイトアドレスは同じです。
    example.com/wp/です。

    子サイトを新規登録すると、URLはexample.com/wp/○○○/になってしまうと
    思うのですが、これをexample.com/○○○/でアクセスできるようにしたいです。
    (インストールしたディレクトリ名を取りたいのです。)
    HOMEはexample.comでアクセスできるようにしたいです。

    何か方法がありましたらご教授頂いただけないでしょうか?
    よろしくお願いいたします。

    gatespaceさんも書かれていますが、WordPressをドキュメントルートでなく、専用ディレクトリにインストールした場合には、マルチサイト化をすることができないのです。

    下記、該当箇所です。
    http://codex.wordpress.org/Before_You_Create_A_Network#WordPress_Settings_Requirements

    You cannot create a network in the following cases:

    “WordPress address (URL)” is different from “Site address (URL)”.
    “WordPress address (URL)” uses a port number other than ‘:80’, ‘:443’.

    /wp/を見た目上、何らかの形で取り除く方法をお探しなのだと思うのですが、あまり思いつかないのと、色々不具合が出そうで怖くてできません。

    namizakiさんこんにちは。僕も全く同じ問題で悩んでいました。ドメイン直下ではなく、専用ディレクトリ(サブフォルダ)にWPをインストールして、マルチサイトをサブディレクトリで運用することは勿論できますが、結論的に言えば、子サイトを、ドメイン名/○○○/ で表示することはできません。

    英語ですが、こちらの投稿に、サブフォルダにWPをインストールしてマルチサイトを運用する場合の注意点がまとめられています。
    http://wordpress.org/support/topic/multisite-and-non-root-install

    それを参考に解説すると、ドメイン直下に“blogs”というフォルダを作り、そこにWPをインストールすると、サイト全体の構成は以下のようになります。

    ドメイントップ:domain.com HTMLで普通のホームページを作る。
    メインブログ:domain.com/blogs
    メインブログ内のページ:domain.com/blogs/pagename
    メインブログの投稿:domain.com/blogs/blog/%permalink%

    ここで注意しなければいけないのは、投稿記事のURLに、/blog/ というスラグが自動的に加えられてしまうことです。サブブログとの関連でパーマリンクのエラーを未然に防ぐためのWPのデフォルトの設定です。要するに、/blog/ をつけておかないと、パーマリンク全体が混乱してしまう恐れがあるからです。

    従って、マルチサイト化をしないで、普通にWPをサブフォルダにインストールした時のように、投稿記事のURLを、domain.com/blogs/%permalink% にすることもできないと思います。

    なので、/blog/ スラグが入ることを前提に、WPをインストールするフォルダ名を考えた方が良いですね。この例のように、blogsなどではなく、メインブログのキーワードなどが良いかもしれません。

    2つ目以降の子サイト(サブブログ)のURLは以下のようになります。(3つ目、4つ目も同様で、サイトネームが変わるだけです)

    サブブログ:domain.com/blogs/sitename
    サブブログ内のページ:domain.com/blogs/sitename/page
    サブブログの投稿:domain.com/blogs/sitename/%permalink%

    子サイトの投稿URLには、子サイトの名前が挿入されるので、メインブログのように、/blog/ スラグが追加されることはありません。

    最後に、子サイトを、ドメイン名/○○○/ で表示することはできない理由ですが、子サイトを生成するためには、WPの本体がインストールされている、domain.com/blogs の wp-admin フォルダーにどうしてもアクセスする必要があるからです。

    つまり、子サイトのURLが、ドメイン名/○○○/ だと、wp-admin フォルダーにアクセスできません。このように物理的に、サブフォルダにWPがインストールされている場合、そのフォルダが、URLに必ず含まれていなければならないのです。

    但し、ドメイン直下にWPをインストールすれば、子サイトのURLを、ドメイン名/○○○/ にすることができます。サイト名の/○○○/をヴァーチャルフォルダーとして運用できるからです。

    まとめると、WPをサブフォルダに入れてマルチサイトを運営する場合の注意点は2つある。1つは、メインブログの投稿URLに、blogという余分なスラグが入ってしまうこと。2つ目は、子サイト(サブブログ)のURLが、domain.com/blogs/sitename のようになる。

    また、子サイトのサイトネームには、blog を使うことができず、他にもWP側で禁止されている言葉がいくつかある。つまり、domain.com/blogs/blog という子サイトは作れない。これは明らかに、メインブログに、/blog/ というスラグが使われるので、パーマリンクの混乱を防ぐためでしょう。

    このようにURL的には、制限が非常に大きいと感じますが、WPをインストールするフォルダー名やサイト名に、そのブログのキーワードを使用するなどの工夫をすれば、それほど気にならなくなると思います。

    ブログがメインの場合は、ドメイン直下に、WPをインストールすれば良いでしょう。でも、ドメイントップに、HTMLで普通のホームページを展開し、それをメインとする場合は、そのホームページを補足するために、サブフォルダにWPをインストールして、マルチブログを展開するのはとても賢いやり方だと思います。

    スレッド開始 namizaki

    (@namizaki)

    Joe12mgさん、詳細にご回答くださりありがとうございます。
    そのような理由があって、domain/ooo/では運用できないのですね。
    勉強になりました。ありがとうございます。

    他にもご回答くださったgatespaceさん、ShinichiNさん
    ありがとうございました。

    このトピックは解決にさせて頂きます。
    ご回答くださった方々、改めてありがとうございました!

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「サブディレクトリでマルチサイト化したあとのパスの変更」には新たに返信することはできません。