9

次のページにログインフォームがあります。

site.com/en/downloads

「en」は user_language です (グローバル var にそのまま保存されます)

ログインすると、フォームは次の場所にリダイレクトされます。

site.com/downloads

user_language を使用して URL にリダイレクトする必要がありますが、

私は多くのことを試しましたが、戻り値の値は常に無視されます。

  • return =”{site_url}/{user_language}/downloads”</li>
  • return =”{site_url}”</li>
  • return =“http://site.com”</li>
  • return =“http://google.com”</li>
  • return =“about/index”</li>

それらはすべて site.com/downloads にリダイレクトされます。

出力されるコード (最後の例) は次のようになります。

<form method="post" action="http://site.com/"  >
<div class='hiddenFields'>
<input type="hidden" name="XID" value="9fae3b1b5fcf882776da6638706595af73a7b15d" />
<input type="hidden" name="ACT" value="7" />
<input type="hidden" name="RET" value="about/index" />
<input type="hidden" name="site_id" value="1" />
</div> 

次のような .htaccess があります。

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L] 

アップデート:

提案されているように freemember を使用してみましたが、問題は同じままです:

戻り値を「about/index」に設定しましたが、引き続き site.com/downloads にリダイレクトされます。

ただし、freemember によって生成されたコードはしっかりしているように見えるので、何かが戻り値をオーバーライドしているに違いありません。

<form method="post" action="http://site.com/downloads"  >
<div class='hiddenFields'>
<input type="hidden" name="XID" value="d9483688fbf63d9ea47e89a66e074b99f5b8465c" />
<input type="hidden" name="ACT" value="18" />
<input type="hidden" name="_params" value="wvkEsN96mPfmlhgerM2ppxGbMmiLJrz0Ntn7apKer/rmBpQaUozvSM0TvkVN66QlX/ptCM1IQGsuZuw7X3mzlOMCFIUyYFpbZy5h7nfPJMiHLdpqXqwBFOiA/zcNW0GKAIicv4JPAS2mfHKQE+mb2Ct0L+jhGz0NlSdELuMOeqQPJJ3B7U90D5w/sKTeaX5zaOMSvKJ4LZ7xP0Dn+UxE9g==" />
<input type="hidden" name="return_url" value="about/index" />
<input type="hidden" name="site_id" value="1" />
</div>
4

3 に答える 3

3

私はついにそれを理解しました。

どうやら私はログインコードをハイジャックする「Twomile Login Redirect」と呼ばれる小さなプラグインをまだ使用していたようです (無効になっていても削除する必要がありました)。

だから今はすべて順調です。

教訓:古いプラグインを削除してください:)

于 2012-11-05T09:10:59.247 に答える
1

私はこれを表面的に見ているかもしれませんが、あなたは使うことができませんでした

return =”{segment_1}/downloads”
于 2012-11-03T20:15:58.210 に答える
1

return="{user_language}/about/index"上記のようにパラメータを使用するRETと、HTMLコードで変数が正しく出力されますか? RET独自の非表示の入力フィールドを追加するのはどうですか? これをログインフォーム内のどこかに置くだけです:

<input type="hidden" name="RET" value="{user_language}/about/index" />

HTML 仕様によると、2 つの入力に同じ が含まれている場合name、後の入力が前の入力を上書きするため、このようにしても問題ありません。

別の方法として、Freememberプラグインを使用することもできます。戻り URL がうまくいく可能性があり、厄介な灰色のリダイレクト ページも避けることができます。</shameless-plug>

于 2012-10-31T09:46:07.550 に答える