GET参数引发406错误

时间:2014-07-18 16:08:30

标签: php html .htaccess utf-8 get

我有这个简单的PHP脚本:

<!DOCTYPE html>
<html lang="es-ES" xmlns="http://www.w3.org/1999/xhtml" xml:lang="es-ES">
<head>
    <meta charset="iso-8859-1" />
</head>
<body><p><?php

if(isset($_GET['echo'])){
    echo $_GET['echo'];
}

?></p>
<form action="" method="get">
    <input type="text" name="echo" value="" />
</form>
<p>áéíóúàèìòùñ</p>
</body>
</html>

提交西班牙语单词“cañón”会生成GET参数字符串?echo=ca%F1%F3n,我的主机会以406 Not Acceptable错误回答。保留charset iso-8859-1对我来说很重要,并且脚本文件用ANSI编写。

使用表单元素中的accept-charset="UTF-8"属性可以避免错误,但回显到页面中的单词显示为“cañón”。

是否有某种方法可以配置Apache,希望使用.htaccess来避免这种行为并在结果页面上正确呈现“cañón”这个词?

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

最后,该问题的解决方案是要求我的主机检查mod_security配置。他们以某种方式修复它,现在脚本运行正常。

答案 1 :(得分:-1)

我认为你不能使用“回声”这个词。作为变量,因为它是php语法单词之一。尝试使用其他变量。