Php 用于写入htaccess文件的脚本,添加导致500错误的幻象未知字符
我正在编写一个小部件,允许管理员从administration管理Php 用于写入htaccess文件的脚本,添加导致500错误的幻象未知字符,php,apache,.htaccess,Php,Apache,.htaccess,我正在编写一个小部件,允许管理员从administration管理htaccess文件。脚本正在生成的htaccess code中添加渲染为空格的幻影字符,这会引发500错误 代码如下: 产生: 每行末尾都有一个空格/幻影字符。如果在500错误期间,我通过FTP删除空间编辑,并保存htaccess文件,然后刷新页面所有id 如果我按如下方式删除代码中的空格,然后运行代码,则会出现500错误 # block/allow users by ip if(!empty($block_ips) |
htaccess文件。脚本正在生成的htaccess code
中添加渲染为空格的幻影字符,这会引发500错误
代码如下:
产生:
每行末尾都有一个空格/幻影字符。如果在500错误期间,我通过FTP删除空间编辑,并保存htaccess文件
,然后刷新页面所有id
如果我按如下方式删除代码中的空格,然后运行代码,则会出现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";
我不知道从这里到哪里去。。。如蒙协助,将不胜感激
皮特问题已解决:
虽然我很高兴了解了PHP\u EOL
,并对整个脚本进行了更改。。。它没有解决这个问题。代码是正确的。问题出在问题中显示的我测试的IP地址上
由于IP地址的速度不够快,我想任何逗号分隔的4位数字都可以用于测试。。。显然不是。我将测试IP更改为已知IP,脚本运行良好
虽然这是一个简单的解决方案,但我认为值得分享
感谢所有的投入。。。非常感谢
Pete尝试使用常量PHP\u EOL insead of \r\n-这将提供特定于平台的行尾字符序列如果您正在阻止IP,我想您刚刚受到一些黑客攻击,对吗?我也遇到了这个问题,有一个注入脚本刚刚在我的htaccess中添加了一个随机字符来关闭它(这使一些网站很容易受到攻击)-我建议你扫描你的htdocs/public\u html-也许这与你是否尝试过使用PHP\u EOL
而不是“\r\n”
有关。或者删除\r
并仅使用\n
(linux下线)@CodeBrauer没有受到攻击,但感谢您的输入。@Damien和PiX06我没有尝试过PHP\u EOL。。。不太清楚是什么。现在检查
#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
# 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";