0

私のホームページurlはこんな感じですhttp://mysite.com/sub/

urlこのような新しいものにリダイレクトしたいだけですhttp://mysite.com/sub/home?lang=en

これが私のcode

Redirect 301 /sub/ /sub/home?lang=en

問題/エラー:

新品urlはこうなりますhttp://mysite.com/sub/home?lang=enhome

homeの後に不要な連結がありますen

どうすればこれを削除できますか? または、私のコードに何か問題がありますか?

このような同じ質問がすでにあるかもしれないことを知りません

4

1 に答える 1

1

これは、Redirectディレクティブが 2 つのパス ノードを「接続」し、一方が他方の内部にある ( /sub/homeis inside /sub ) ためです。たとえば、ディレクティブが次のようになっているとします。

リダイレクト 301 /a /b

これは、誰かが要求したときhttp://mysite.com/a/foo/barにリダイレクトされることを意味しhttp://mysite.com/b/foo/barます。にリダイレクトされたときに何が起こるかというと、パターン に一致するため再び/sub/homeリダイレクトされ、が追加されるため、./sub/home/subhome/sub/home?lang=enhome

RedirectMatch代わりに、パスノードを「接続」しないで試すことができます。

RedirectMatch 301 ^/sub/?$ /sub/home?lang=en

または mod_rewrite:

RewriteEngine On
RewriteRule ^/?sub/?$ /sub/home?lang=en [L,R=301,QSA]
于 2012-12-27T08:31:58.327 に答える