2

www.domain.com のメイン サイトと blog.domain.com の古い wordpress ブログを、完全に新しい 1 つの Wordpress インストールに統合します。古いブログ投稿をすべてエクスポートしてインポートし、現在は wwww.domain.com/blog// の下にあるようにしました

すべての古いブログ投稿を新しい URL にマップする 1 つの書き換えルールを作成しようとしています。

私はこれらの SO 議論のバリエーションを試しました: サブドメインを特定のフォルダにリダイレクトする DNS/.htaccess ファイル キャプチャが空の場合、Apache の書き換えルールが異なります

しかし、何も機能していません。

私の .htaccess ファイルの次は、URL に何もなければ、blog.domain.com を www.domain.com/blog にリダイレクトします。

RewriteCond %{HTTP_HOST} ^blog\.domain\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.blog\.domain\.com$ [NC]
RewriteRule ^/?$ http://www.domain.com/blog/$1 [R=301,L]

しかし、URL にそれ以上のものがあれば、URL をまったく書き換えず、新しい Wordpress サイトの 404 ページに移動します。

最後の RewriteRule 行にキャプチャを追加しようとしましたが、書き換えは行われず、新しいホームページに移動するだけで、アドレス バーにはまだ「blog.domain.com」と表示されます。

RewriteCond %{HTTP_HOST} ^blog\.domain\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.blog\.domain\.com$ [NC]
RewriteRule ^/(.+)$ http://www.domain.com/blog/$1 [R=301,L]

私がやろうとしていることをする方法はありますか?

4

2 に答える 2

3

先頭のスラッシュを削除したい:

RewriteCond %{HTTP_HOST} ^blog\.domain\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.blog\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/blog/$1 [R=301,L]
# no slash---^

そして、+aを作り*ます。htaccess ファイルのルールを介して送信される URI は、先頭のスラッシュが取り除かれているため、^/(.+)$一致することはありません。

于 2013-09-27T17:06:13.293 に答える
3

ルールを次のように置き換えます。

RewriteCond %{HTTP_HOST} ^(www\.)?blog\.domain\.com$ [NC]
RewriteRule ^ http://www.domain.com/blog%{REQUEST_URI} [R=301,L]

PS:これが .htaccess の最初のルールであることを確認してください。

于 2013-09-27T17:06:33.570 に答える