我使用WordPress 4.3.1运行Avada儿童主题。对于取消订阅操作,我编写了一个启动此url的简单脚本:
<A HREF="http://test.domain.nl/[email protected]">unsub</a>
激活此url时,url会正确放置在网站上,但url会重写为:
<A HREF="http://test.domain.nl/unsubscribe?email=testdomain.nl">unsub</a>
所以没有@符号。
我已经停用了所有插件,但@仍然被删除。这在所有类型的浏览器中都会发生。此外,将链接复制到浏览器时,还会删除@。
strong text!但是,当我手动将@放入url并再次启动它时,@符号将保持不变,取消订阅将采取行动。strong text
if(isset($_GET[\'email\']) ) {
$email = $_GET[\'email\'];
$activeEmail = $GLOBALS[\'wpdb\']->get_row("SELECT email FROM wp_mm_external_emails WHERE active = 1 AND email = \'".$email."\' ");
$notactiveEmail = $GLOBALS[\'wpdb\']->get_row("SELECT email FROM wp_mm_external_emails WHERE active = 0 AND email = \'".$email."\' ");
$noEmail = $GLOBALS[\'wpdb\']->get_row("SELECT email FROM wp_mm_external_emails WHERE email = \'".$email."\'");
if($Active == 2) {
$GLOBALS[\'wpdb\']->update(\'wp_mm_external_emails\',
array(
\'active\' => \'0\',
\'date_unsubscribe\' => date(\'Y-m-d h:i:s\', time() )
),
array(\'email\' => $email)
);
}
}
输入
[email protected],url粘贴
[email protected],重写url结果=testdomain。荷兰。重写不是由htaccess引起的,我已经停用了那里的所有重写。
你们中有人知道我必须在哪里寻找解决方案吗?
最合适的回答,由SO网友:Scriptonomy 整理而成
输出到链接标记时,应始终对url进行编码:
urlencode(\'http://test.domain.nl/[email protected]\')
Rewrite
在进一步检查您的网站之后。很明显,URL是在缺少尾部斜杠的情况下被重写的
uitschrijven?email=
.
做研究时我偶然发现了这个issue 这和你的一模一样。
解决方案是添加RewriteRule
在您的.htaccess
文件
RewriteCond %{REQUEST_URI} !(/$|\\.)
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L]