0

私は約38のWebサイトをJoomlaからwordpressに移動しています。

私はSEOのために同じリンク構造を維持したいと思います。残念ながら、最後の開発者はリンクの構造に不注意だったので、満たす必要のあるいくつかの奇抜な要件があります。

つまり、ブログがindex.php / blog-4であると同時に、index.php/blogとindex.php/blog-5である場合もあります。

ワードプレスでは、パーマリンクを

index.php / blog-5 /%postname%

私はこれまで.htaccessを編集したことがありませんが、私がやりたいのは、

/ blog / *-> / blog-5 / *

/ blog-4 / *-> / blog-5 / *

これを達成するために私は何を書きますか?

編集

マイケルの答えを実装するのに問題があります。.htaccessは次のようになります。の内側と外側の両方に入れてみました。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]


RewriteCond %{REQUEST_URI} !^/blog-5
RewriteRule ^blog(-.+)?/(.*) blog-5/$2 [L,R=301]

</IfModule>

# END WordPress
4

1 に答える 1

2

これはかなり単純RewriteRuleです。式(-4)?を使用して、オプションでに一致し、へのリクエストとともにに-4リダイレクトします。キャプチャ後の2番目のグループは、他のすべてをにキャプチャします。/blog-5/blog/(.*)/$2

RewriteEngine On
RewriteRule ^blog(-4)?/(.*) blog-5/$2 [L]

上記はサイレント内部書き換えを行います。実際にリダイレクトしてブラウザに新しいURLを表示させる場合は、に変更[L][L,R=301]ます。

注:実現blog-4はおそらく変数名であり、(-.+)?何にでも一致させるために使用します。しかし、あなたもそれが一致しないRewriteCondように必要です: blog-5

RewriteCond %{REQUEST_URI} !^/blog-5
RewriteRule ^blog(-.+)?/(.*) blog-5/$2 [L]
于 2012-12-15T14:22:17.833 に答える