1

私が持っている:

Redirect 301 /blog/?p=1 http://www.new-site.com/blog/2000/10/myslug/

以下が続かない限り、これは正常に機能します。

RedirectMatch 301 ^/blog(/)?(.*)$ http://www.new-site.com/blog/$2

RewriteRule を含むあらゆる種類のバージョンを試しましたが、何も機能しませんでした。最初の特定のルールを保持し、「他のすべてがそのリクエスト uri とクエリ文字列を保持する」ルールを作成するにはどうすればよいですか?

ありがとう

4

1 に答える 1

0

わかりました、これらがたった2行であると仮定すると、私が見るものはこれです:

Redirect 301 /blog/?p=1 http://www.new-site.com/blog/2000/10/myslug/

RedirectMatch 301 ^/blog(/)?(.*)$ http://www.new-site.com/blog/$2

これらは基本的に同じことを言っています。つまり、一致すると、すべてのブログ クエリが新しいサイトに永久にリダイレクトされます。

2番目のものでは、最初から文字列を可能なスラッシュと一致させて/blogキャプチャし、さらに情報をキャプチャしてから、そのすべての情報をblog/extra-picked-up-info. これは問題の一部である可能性があります。または、ディレクティブの順序を変更し、下位のディレクティブが優先されるかどうかを確認することで回避できる場合があります。

RedirectMatch 301 /blog(?:/\?)?(.*)?$ http://www.new-site.com/blog/$1
Redirect 301 /blog/?p=1 http://www.new-site.com/blog/2000/10/myslug/

それ以外の場合は、URI を再調査して、より一意に識別できるものを見つける必要があります。

于 2011-09-06T18:15:36.267 に答える