web-dev-qa-db-ja.com

マルチサイト:サブブログに仮想サブフォルダを使用する

私たちの学校では、ワードプレスネットワークを使用しています。メインドメインは一般情報へのアクセスを提供し、サブサイトは学生によって管理される特定のプロジェクトです。

すべてのサブサイトのURLに偽のフォルダ名を追加してください。

の例

メインドメインがschool.eduだとしましょう。

私のサブサイトは

school.edu/project1/
school.edu/project2/

私はそれがなるようにしたいのですが:

school.edu/projects/project1/
school.edu/projects/project2/

どうすればいいの?

UPDATE 1

.htaccessにこの規則を追加してみました。それは正しくリダイレ​​クトします、しかしそれから表示されたURLは私が欲しいものに留まりません、それはオリジナルの「本当の」URLに戻ります。

RewriteRule ^projects/([_0-9a-zA-Z-]+/)? $1 [R=301,L]
6
pixeline

他のクライアントにも同様の問題があり、projects/project1のようなものを入力すると、/が検証に失敗するため、エラーになります。

オーバーライドまたはフィルタを見つけられなかった後、代わりに抜け穴を見つけました。 projectsproject1を作成したら、その後そのサイトのURLがprojects/project1になるようにサイトを編集し、homeurlなどを保存して更新します。ただし、添付ファイルのロードに失敗するのを防ぐために、htaccessなどに変更を加える必要があるかもしれませんが、3.5ではms-files.phpがスキップされるため、問題は少なくなるはずです。

4
Tom J Nowell

あなたは.htaccessの修正だけを使ってこれを解決することを試みるかもしれません。 URLのschool.edu/projects/project2/school.edu/project2/に書き換えて、長い形式を使用することができます。しかしこの場合、Wordpressで適切な長いURLを生成する必要もあります。

1
feeela

したがって、WordPressでこの問題を処理するために推奨される方法は、実際にユーザーにyourschool.edu/project1 URLを表示させることですが、インストールをユーザーが見つけにくい別のディレクトリに配置することです。

これは、あなたが求めているのとは逆のことを意味しますが、それはベストプラクティスの答えであり、私がより大きな懸念を抱いているのは、不明瞭な部分を介してセキュリティの層を提供することです。

これがあなたがフレッシュインストールのためにすることです:

  1. wordpressのコアファイルをダウンロードします(wordpress.orgからZip形式で)。
  2. 解凍する
  3. フォルダの名前をわかりにくくします(ただし、覚えているでしょう)。
  4. あなたのサイトのルートディレクトリにフォルダをアップロードする
  5. わかりにくい名前のフォルダからindex.phpおよび.htaccessファイルをコピーしてルートディレクトリに貼り付けます(注:.htaccessファイルはまだ存在していない可能性があります。その場合は作成する必要があります)。
  6. index.phpファイルを開いて変更する

     require('./wp-blog-header.php'); 
    

これに

    require('./nameofobscurefolder/wp-blog-header.php');

これはあなたがより長いアドレスでログインしなければならないことを意味します、しかしあなたはすでにあなたのブックマークツールバーにそれを持っているでしょう。

WPをインストールしてログインしたら、[設定]> [一般]に進みます。

2つのことを確認してください。

  1. wordpressのURLの設定が http://yourschool.edu/nameofobscurefolder を指していること

  2. ブログのURLが http://yourschool.edu を指していること。

0
Melanie Sumner