0

mod_rewrite を使用してユーザーをリダイレクトし、複数のクエリ文字列を保持してリダイレクト ページを作成しようとしています。

たとえば、ユーザーが開いた場合

http://localhost/url/url/http://www.google.com/contacts/?user=abc&stackoverflow=great&google=facebook

それから彼は連れて行かれます

http://localhost/url/url.php?redirect=http://www.google.com/contacts/?user=abc&stackoverflow=great&google=facebook

URL をエンコードしてからリダイレクトする必要があるという二次的な問題があります。URL がエンコードされていない場合、文字列 (&stackoverflow=great) は url.php の「リダイレクト」文字列の一部にはなりません。

私は多くの解決策を試した後、スタックオーバーフローに来ました! 次のファイルで次のコードを試しました

 http://localhost/url/.htaccess 

RewriteRule ^url/([^/])$ url.php?redirect=$1 [QSA,L]

しかし、結果は localhost/url/url.php?redirect=http のみ

4

2 に答える 2

0

セットアップはエンコードされていない内部 URL では機能しないため、「回答」には一時的な文字のみを含めることができます。しかし、これは出発点かもしれません:

RewriteEngine on
RewriteRule ^/url/url/(.*)$ /url/url.php?redirect=$1 [L,QSA]

ただし、そのフラグメント/url/urlが本当に意図されているかどうかは疑問です(2つの「URL」がそこにあります)。

正確なルールの内容は、そのルールを定義する場所にも依存することに注意してください。構文は、中央サーバー構成 (参照) を使用するか、.htaccessスタイル ファイル (2 番目の選択肢であり、より複雑) を使用するかによって異なります。

于 2013-02-25T08:31:40.293 に答える
0

これを試して

RewriteEngine on
Redirect ^url/url/(.*)$ url/url.php?redirect=$1

基本的なリダイレクト systax、

アクセスしたファイルの URL をリダイレクトする

于 2013-02-25T08:32:22.417 に答える