web-dev-qa-db-ja.com

ルートではなく、サブディレクトリにWordpressマルチサイトを配置し、URLからベースフォルダを削除します。

私は誤解しているかもしれませんが、私は以下のニーズに対する解決策を見つけることができません:私は私のwwwディレクトリのサブフォルダにWordPressをインストールしたいです、www/wpと言いましょう。私はそれからfoobarという2つのブログをマルチサイトネットワークに追加したいと思います。 )私がそうするとき、それらはURLで終わります:

  • http://example.com/wp/foo
  • http://example.com/wp/bar

代わりにこれらの場所に配置したいと思います。

  • http://example.com/foo
  • http://example.com/bar

しかし、しないしないWPサイトが欲しいhome/rootで実行しています。

  • http://example.com

私はそこで別のアプリケーションを実行するので(そうでなければ私はただルートにWordPressをインストールして終了するでしょう)。

これをどうやって設定するのですか?

1
Chris

WordPressを独自のディレクトリ にインストールします。提供されているリンクの指示に従ってください。ルートディレクトリにindex.phpと.htaccessの2つのWPファイルをインストールする必要があります。それらはあなたの既存のウェブサイトを妨害するかもしれません。

1
user42826

私は最近同じことをやろうとし、私のために働いた解決策を見つけました。

まず、マルチサイトの設定をサブディレクトリに置きます。

  • www.mydomain.com/multi/
  • www.mydomain.com/multi/site1
  • www.mydomain.com/multi/site2

次に、ルートにディレクトリを追加します。

  • www.mydomain.com/site1

その新しく作成されたディレクトリ(/ site1 /)に、マルチサイトへのすべてのリクエストを書き換えるために.htaccessを追加することができます。私はこれの専門家ではありませんが、このコードは.htaccessファイルで私のために働きました:

RewriteEngine On RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(index\.php)$ /multi/$1   

RewriteRule ^(.*)$ /multi/$1

WordPressはまだあなたのサブサブディレクトリsite1へのデータベース内のたくさんの参照を持っています。そのため、次にやるべきことは、データベース内のすべてのエントリを変更することです。そのために このスクリプト を使用できます。

これですべてはうまくいくはずです。そして、www.mydomain.com/site1にアクセスすると、マルチサイトサブサイトが表示されるはずです。唯一の問題は、クッキードメインの衝突が原因でログインできないことがあるということです。これを修正するには、すべてのドメインクッキーを削除します(私はchrome devツールを使用しました)。次に、これらの行をwp-config.phpファイルに追加します。

define('ADMIN_COOKIE_PATH', '/'); 

define('COOKIE_DOMAIN', '');

define('COOKIEPATH', ''); 

define('SITECOOKIEPATH', '');

うまくいけば、それはあなたのために働く。

1
andreboekhorst