web-dev-qa-db-ja.com

サブフォルダではなくルートに新しい投稿/ページを公開するが、古い構造をそのままにするにはどうすればよいですか?

私は何年も前にexample.org/blog/で設定されたブログを持っているので、そのすべてのファイルは/blog/にあります。当時それは良い考えのように思えました、しかし今我々はゆっくりとサブフォルダーを取り除きたいです。

もちろん、インストールをrootフォルダの/に移動し、wordpressのurl inオプションを変更してすべてを移動し、htaccessのリダイレクトを/blog/*から/*に追加しても、古いリンクは機能します。

しかし、すべてのコンテンツを一度に移動することは、Googleのランキングとトラフィックにとって大きなリスクとなる可能性があるため、ゆっくりと実行します。 301/302リダイレクトは問題ありませんが、リンクが同じままで何千もの記事を一度に移動した場合、Googleはそれほど幸せではありません。最初は新しいコンテンツ、次に古いコンテンツです。

new 投稿とページをexample.org/ではなくexample.org/blog/でのみ公開する方法はありますか?

私はあらゆる種類のハックが可能です。私はすでにWordpressをインストールしたサブフォルダの中にいくつかのブログを走らせていて、ブログをあちこちに向けて移動させ、データベーステーブルのすべての行の値を変更するスクリプトを書いてきました。かかって来い :)

1
janpio

うーん、私はあなたがプロジェクトのための大きな変更を考えているなら、あなたは次のように進めることができると思います:

  1. もちろん、あなたのサイトの開発スナップショットをどこか他の場所に作成してください。フォークファイルとデータベース、開発用仮想ホストと開発者クライアントをだますことさえできますので、データベースのwp_optionsテーブルのURL関連パラメータを変更する必要さえありません。
  2. データベースで、 " http://mydomain.tld/blog/ "のすべてのパターンを " http"に置き換えます。 ://mydomain.tld/ "このパターンにはいくつかのバリエーションがあります(wwwの有無、httpsの有無など)。
  3. これらのタスクを実行した後、すべてのファイルを移動し、ブログ全体を移動するように1つのリダイレクトルールを設定できます。更新されたイントラリンクは新しいURLパターンに合うので、迷惑になることはありません。

あなたのサイトが訪問者に「ソーシャルシェア」のカウントをURLのために見せているなら、それは間違いなく問題になるでしょう。しかし、これはすでに解決されており、 Encosia で推奨されているアプローチをまねることで、これがプロジェクトの問題になる場合は十分です。

1
versvs

私は最善の方法だと思います、あなたがグローバルに、また古いポストを変更して、サブフォルダを削除することです。

しかし、新しい投稿/ページの書き換えルールを変更するためにフックpublish_post/_pageを使うことも可能だと思います。たぶん、あなたは書き換えの可能性を理解するためにToschosの例のソースで学ぶことができます、githubでの 彼のレポ を見てください。しかし、これはパフォーマンスの問題も引き起こします。投稿が新しい場合は、日付mm.yyyy以降にロジックをチェックし、アドホックパーマリンクを変更する必要があります。地球規模の変化としてはもっと複雑です。たぶんそれは、あなたが書き直すと古い投稿を強化すること、すべての投稿も古い/blog/ urlから機能することがより良いです。

1
bueltge