1

この質問に答えたところから続けて、

私の.htaccessファイルでこのルールを使用しています:

# Internally forward /map/abc to /location.php?address=abc
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^map/(.*)/?$ /location.php?address=$1 [NC,L]

次に進むと、ページがロードされた後のある時点で、ユーザーが Facebook ログインを実行すると、この元のページにリダイレクトされますが、認証コードが追加されます。

 map/פבריגט/חולון/ישראל?code=Facebook_Auth

問題は「コード」パラメータが渡されていないことです。

上記の最初のルールの前にこのルールを追加しようとしました:

#first rule to Internally forward /map to /location.php?address=abc&code=yxz and get code
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^map/(.*)/?(.*)$ /location.php?address=$1&code=$2 [NC,L]

しかし、このURLの場合:

/map/פבריגט/חולון/ישראל?code=abc

$_GET 配列の出力

'address' => string UTF-8 (18) "פבריגט/חולון/ישראל"
'code' => string (0) ""

「コード」パラメータをインターセプトするには、どのルールを使用すればよいですか? どんな助けでも大歓迎です。ありがとうございました !

4

1 に答える 1

3

QSAに追加のフラグ (Query String Append)が必要ですRewriteRule

RewriteRule ^map/(.*?)/?$ /location.php?address=$1 [NC,L,QSA]
于 2013-09-04T19:32:58.087 に答える