2009-07-02 15 views
0

私はウェブサイトをWordpressに移動し、同時に古いプラットフォーム上にあった複雑なURL構造を変更しています。典型的なURLは次のようになります。特定のリダイレクトルールの末尾にスラッシュを追加する

/blog/index.php/weblog/comments/post-name

をしかし、また次のようになります。

/blog/index.php/weblog/comments/post-name/

(最後のスラッシュのない一貫性のない使用)

これは程度のほんの一例です同じコンテンツへの12の異なるパス。その結果、私はこのような何かを見て、特定の書き換えルールの束を作成しました:

のRewriteRule ^ブログ/ index.phpを/ブログ/コメント/(.*)$ http://host.com/ $ 1

問題があればあります元のURLには後続のスラッシュが含まれていません。私はおそらくSEOにとってかなり悪いダブル301の状況になります。リダイレクトはこのように書きます:Wordpressのは、設定されていますパーマリンク構造の一部としてそのスラッシュを追加して

/blog/index.php/weblog/comments/post-name [301]
http://host.com/post-name [301]
http://host.com/post-name/ [200]

。私の質問はこれです:私は、後ろにスラッシュをチェックし、それがWordpressが関与する前に行方不明の場合は追加することはできますか?

$マッピングを/ $ 1 /にしようとしましたが、投稿名の前のすべてを削除したい場合は、コメントディレクトリをキャプチャしているようです。

投稿時刻: mod_rewriteとregexでnoobを実行すると、ポスト名と条件付きの前にあるものをすべて削除するグローバル書き換えルールが、最もうまくいくことが考えられます。働きやすい?

答えて

1

おそらくこれは、トリックをやっているように見える

RewriteRule ^blog/index.php/weblog/comments/([^/]+)/?$ http://host.com/$1/ 
+0

を動作します!ありがとう、私はそこにすべてのグローバルなソリューションと私の頭を叩いて、何も働くことを得ていない。 – rustbucket

+0

私はこのような性質のすべてのものと同様に、かまぼこに遭遇しました。元のURLの中には、その最後にindex.php(post-name/index.php)があります。あまりにも難しくなければ、誰かがその可能性を含めるためにSteefのルールを改訂するのを助けることができるなら、私はそれが大好きです。申し訳ありませんが、私は正規表現で吸う。 – rustbucket

関連する問題