我正在编写一个小部件,允许管理员从管理中管理htaccess file
。该脚本正在添加一个幻像字符,该幻像字符在生成的htaccess code
中呈现为空格,这会导致500错误。
# block/allow users by ip
if(!empty($block_ips) || !empty($allowed_ips)){
$htaccess_code .= "#Block-Allow users by IP \r\n";
$htaccess_code .= "order allow,deny \r\n";
}
if(!empty($block_ips)){
$the_ips = explode(',',$block_ips);
foreach($the_ips as $the_ip){ $htaccess_code .= "deny from ".trim($the_ip)." \r\n"; }
}
if(!empty($allowed_ips)){
$the_ips = explode(',',$allowed_ips);
foreach($the_ips as $the_ip){ $htaccess_code .= "allow from ".trim($the_ip)." \r\n"; }
}
$htaccess_code .= "allow from all \r\n";
$htaccess_code .= " \r\n";
#Block-Allow users by IP
order allow,deny
deny from 000.000.111.111
deny from 444.444.555.555
allow from 444.433.555.555
allow from 010.000.111.111
allow from all
每行末尾有一个空格/幻像字符。如果在500错误期间我通过FTP删除了实时空间编辑并保存htaccess file
,然后刷新页面所有内容都很好。
如果我删除代码中的空格如下,然后运行代码,则会发生500错误。
# block/allow users by ip
if(!empty($block_ips) || !empty($allowed_ips)){
$htaccess_code .= "#Block-Allow users by IP\r\n";
$htaccess_code .= "order allow,deny\r\n";
}
if(!empty($block_ips)){
$the_ips = explode(',',$block_ips);
foreach($the_ips as $the_ip){ $htaccess_code .= "deny from ".trim($the_ip)."\r\n"; }
}
if(!empty($allowed_ips)){
$the_ips = explode(',',$allowed_ips);
foreach($the_ips as $the_ip){ $htaccess_code .= "allow from ".trim($the_ip)."\r\n"; }
}
$htaccess_code .= "allow from all\r\n";
$htaccess_code .= "\r\n";
我不确定从哪里开始......非常感谢任何帮助。
皮特
答案 0 :(得分:0)
问题解决:
虽然我很高兴了解PHP_EOL
并确实对整个脚本进行了更改......但它并没有解决问题。代码是正确的。问题出在我测试的IP地址中,并在问题中显示。
在IP地址中没有完全达到速度我认为任何逗号分隔的4位数都可以用于测试......显然不是。我将测试IP更改为已知IP并且脚本运行正常。
虽然这是一个简单的解决方案,我认为值得分享。
感谢所有的投入......非常感谢
皮特