我在以下页面有一个登录表单:
site.com/en/downloads
“en”是user_language(并且存储在全局var中)
当我登录时,表单会将我重定向到:
site.com/downloads
虽然它应该使用我的user_language
将我重定向到网址我尝试了很多东西,但返回值的值总是被忽略。
他们都重定向到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>
答案 0 :(得分:3)
我终于明白了。
显然我还在使用一个名为“Twomile Login Redirect”的小插件,它劫持了我的登录代码(即使它被禁用,我也不得不将其删除)
现在一切都很好。
获得的经验:删除旧插件:)
答案 1 :(得分:1)
如上所述使用return="{user_language}/about/index"
参数时,它是否正确输出HTML代码中的RET
变量?如何添加自己的RET
隐藏输入字段呢?只需将它放在您的登录表单中:
<input type="hidden" name="RET" value="{user_language}/about/index" />
根据HTML规范,如果两个输入具有相同的name
,则后一个输出将覆盖任何先前的输入,因此以这种方式执行是没有问题的。
或者,您可以尝试使用Freemember插件 - 您可能会对返回网址更加满意,并且您也可以避免使用令人讨厌的灰色重定向页面。 </shameless-plug>
答案 2 :(得分:1)
我可能会看到这一点,但你不能使用
return =”{segment_1}/downloads”