Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 处理坏机器人请求url';s包含类似“符号”的符号&;amp&引用;而不是",&&引用;_Html_Url - Fatal编程技术网

Html 处理坏机器人请求url';s包含类似“符号”的符号&;amp&引用;而不是",&&引用;

Html 处理坏机器人请求url';s包含类似“符号”的符号&;amp&引用;而不是",&&引用;,html,url,Html,Url,因此,无论在哪里,我都会使用我放置的querystring将url指向某个路径&;而不是&这样我就得到了有效的HTML 有许多不同的爬虫程序浏览网站并访问此url,但它们不使用html解码方法来获取正确的url值,因此它们使用以下内容向我的网站发出请求: mywebsite.com/?p1=v1&p2=v2 而不是 mywebsite.com/?p1=v1&p2=v2 现在我用错误页面回应,因为我对提出这个请求的机器人不感兴趣 但我的问题是,处理此类请求的最佳实

因此,无论在哪里,我都会使用我放置的querystring将url指向某个路径&;而不是&这样我就得到了有效的HTML

有许多不同的爬虫程序浏览网站并访问此url,但它们不使用html解码方法来获取正确的url值,因此它们使用以下内容向我的网站发出请求:

mywebsite.com/?p1=v1&p2=v2
而不是

mywebsite.com/?p1=v1&p2=v2
现在我用错误页面回应,因为我对提出这个请求的机器人不感兴趣

但我的问题是,处理此类请求的最佳实践是什么


您知道支持处理此类请求是否有任何用处吗?(例如,是否有任何流行的爬虫程序或浏览器不能正确转换此url?

我认为您可以预期任何主要的爬虫程序都能够处理有效的转义url。所以剩下的我就不用担心了

如果您真的愿意,那么您可能希望将重写规则添加到Apache或您使用的任何东西中。但是,当URL真正包含charsequence
时,这可能会导致其他问题并被错误的重写规则替换为
&


在我看来,最好不要碰它。这不是你的错,当你真的不在乎这些爬虫的时候——那又怎样?:)

是&是一个保留字符,但您不会将其放在网站链接中

正确的

<a href="mywebsite.com/?p1=v1&p2=v2">mywebsite.com/?p1=v1&amp;p2=v2</a>

不正确

<a href="mywebsite.com/?p1=v1&amp;p2=v2">mywebsite.com/?p1=v1&amp;p2=v2</a>


这是否在属性中?不要这样做。你可以配置你的web服务器来修复它,但它看起来像是一个爬虫,不知道它自己可能不值得麻烦事实上,W3C建议使用分号(
)而不是
&
)。但是支持
通常需要更改服务器上的配置。您可能仍然需要通过重定向到
,来支持
&
,因为当提交带有
type=GET
的HTML表单时,浏览器会将您发送到
&
URL。[链接]不确定您的观点是什么,但
&p2=v2
是无效的HTML实体。不要将转义与实际内容混淆。直接从正确的版本:
错误:&未启动字符引用。(&可能应该转义为&;)
事实上,正确的版本是不正确的,错误的版本是正确的。听起来矛盾,但这是真的!:)