我在某个特定网站上遇到涉及问号的网址问题。
如果您点击此链接http://granovino.de/?k 它会找到一个找不到的页面。
但在其他网站上并非如此http://annaline.net/?k
我想知道为什么以及如何解决这个问题?我该怎么看?该网站由Contao构建,如果重要的话。
谢谢, 安德烈
答案 0 :(得分:1)
问题确实存在于查询字符串中。 Contao检查是否存在未使用的$ _GET变量(意味着系统中没有代码检查变量),如果是,则确定URL无效并抛出404.
在Contao 3核心中,此检查在FrontendTemplate->output()
方法中完成。
详细讨论了这个问题on GitHub here.(主要是德语)
为了使URL有效,代码的某些部分必须调用Input::get('xxx')
以将查询字符串变量标记为系统中的“已使用”。
答案 1 :(得分:0)
所以这里有一个关于Query Strings的简短教程
引用维基百科: 在万维网中,查询字符串是统一资源定位符(URL)的一部分,其中包含要传递给Web应用程序的数据
Query String是将数据从应用程序的一个页面传递到另一个页面的技术之一。将它们视为从一个页面传递到另一个页面的变量。 URL中的问号(?)后跟的所有内容都是查询字符串的一部分。
包含查询字符串的URL的典型示例是
http://www.sample-url@priorqurystring.com/?field1=value1&field2=value2&field3=value3
或如果它包含子网站,则:
上述网址中的查询字符串为
的 FIELD1 =值1&安培; FIELD2 =值2&安培;字段3 =值3 强> 的
现在,此查询字符串对应于具有相应值的3个字段(变量)。
在您的应用程序的服务器端;对于该特定页面,您可以访问查询字符串字段以获取相应的值,并对这些值进行处理以获得所需的结果。
有关详细信息,请参阅Wikipedia
考虑一下您的担忧,网站的开发者必须决定以这种方式处理查询字符串,并且必须重定向到“找不到页面”。也许他们正在操纵页面上的一些查询字符串,如果查找不正确的查询字符串,他们会将您重定向到错误页面。