2

www.oldwebsite.com から www.newwebsite.com へのリダイレクト + ページの特定のリダイレクト用に .htaccess ファイルを編集しています。

次のコードはうまく機能しています:

RedirectPermanent /page.html http://www.newwebsite.com/newpage.html

問題が発生したのは、次のように redirectpermanent で終わるページをリダイレクトしようとしたときです。

oldpage.php?id=1

この時点で、404 エラーが返されます。

このコードである別の解決策を試しました

RewriteCond %{QUERY_STRING}   ^id=1$
RewriteRule ^oldpage\.php$ http://www.newwebsite.com/newpage2.html [R=301,L]

ブラウザが次のリンクに移動することを除いて、これは機能しています:

http://www.newwebsite.com/newpage2.html?id=1

誰かがこの問題で私を助けてくれますか? Redirect パーマネントを使用したいと思います (動作しません。Redirect seeother と同じことです)。解決策は簡単だと思いますが、詳細はわかりません。

ありがとう !!!

4

3 に答える 3

1

?rewriteRule の最後に追加して、クエリ文字列をオーバーライドするだけです

RewriteCond %{QUERY_STRING}   ^id=1$
RewriteRule ^oldpage\.php$ http://www.newwebsite.com/newpage2.html? [R=301,L]
于 2013-07-09T13:53:24.087 に答える
0

クエリ文字列を削除しようとしている場合は、QSD フラグを使用できます。

RewriteCond %{QUERY_STRING}   ^id=1$
RewriteRule ^oldpage\.php$ http://www.newwebsite.com/newpage2.html? [R=301,L, QSD]
于 2013-07-09T14:01:19.443 に答える
0

これには PHP $_SERVER['PHP_SELF'] メソッドを使用できます。

それで、

$page = $_SERVER['PHP_SELF'];

header("Location: http://www.newwebsite.com$page");

http://www.oldwebsite.com/newpage.htmlhttp://www.newwebsite.com/newpage.htmlにリダイレクトします。

または$_SERVER['PHP_SELF'] の代わりに $_SERVER ['REQUEST_URL']を試すことができます

于 2013-07-09T13:55:31.470 に答える