私はウェブサイトを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を実行すると、ポスト名と条件付きの前にあるものをすべて削除するグローバル書き換えルールが、最もうまくいくことが考えられます。働きやすい?
を動作します!ありがとう、私はそこにすべてのグローバルなソリューションと私の頭を叩いて、何も働くことを得ていない。 – rustbucket
私はこのような性質のすべてのものと同様に、かまぼこに遭遇しました。元のURLの中には、その最後にindex.php(post-name/index.php)があります。あまりにも難しくなければ、誰かがその可能性を含めるためにSteefのルールを改訂するのを助けることができるなら、私はそれが大好きです。申し訳ありませんが、私は正規表現で吸う。 – rustbucket