重写和url解码
似乎有一个网站链接到我的网站的方式不好。 从谷歌网站管理员工具中,我看到了一些404错误重写和url解码,url,mod-rewrite,rewrite,decode,Url,Mod Rewrite,Rewrite,Decode,似乎有一个网站链接到我的网站的方式不好。 从谷歌网站管理员工具中,我看到了一些404错误 domain.com/file.php?id=1 (404) Not found (Date) 此url正常工作,但由于浏览器页面解码,实际(404)url为 我的第一次尝试是 RewriteRule ^(.*)\%3F(.*)$ $1?$2 [R=301, L] 将%3F更改为“?”,但不起作用。它混淆了什么是真实的,什么是解码的 谢谢,试试这个: RewriteRule ^(.*\%3F.*)
domain.com/file.php?id=1 (404) Not found (Date)
此url正常工作,但由于浏览器页面解码,实际(404)url为
我的第一次尝试是
RewriteRule ^(.*)\%3F(.*)$ $1?$2 [R=301, L]
将%3F
更改为“?
”,但不起作用。它混淆了什么是真实的,什么是解码的
谢谢,试试这个:
RewriteRule ^(.*\%3F.*)\%26([^%]*)(\%3D)?(.*)$ $1&$2=$4 [N]
RewriteRule ^(.*)\%3F([^%]*)(\%3D)?(.*)$ $1?$2=$4 [R=301,L]
编辑:我看到您已经测试了%3F。。。如果这不起作用,那么可能会出现其他问题。嗯,试试这个:
RewriteRule ^(.*\%3F.*)\%26([^%]*)(\%3D)?(.*)$ $1&$2=$4 [N]
RewriteRule ^(.*)\%3F([^%]*)(\%3D)?(.*)$ $1?$2=$4 [R=301,L]
编辑:我看到您已经测试了%3F。。。如果这不起作用,那么可能会出现其他问题。这不是一个优雅的解决方案,但几个月后,这是我找到的唯一方法 常规病例
domain.tld/dir/file.php?id=UID&qty=NUM&... (from old site structure)
被改写为
domain.tld/newfile.php?id=UID&qty=NUM&... [R=301,L]
所以,对于像这样的请求
domain.tld/dir/file.php%3Fid%3DUID%26qty=NUM%26... (from old site structure)
我表演
RewriteRule ^dir/file\.php(.*)$ script.php?qs=$1 [R,L]
这必须在所有涉及dir/file.php的指令之后
然后我可以在script.php中处理查询字符串$\u GET['qs']
它可能不适用于其他可能进入循环或不期望的结果的情况。这不是一个优雅的解决方案,但几个月后,这是我找到的唯一方法 常规病例
domain.tld/dir/file.php?id=UID&qty=NUM&... (from old site structure)
被改写为
domain.tld/newfile.php?id=UID&qty=NUM&... [R=301,L]
所以,对于像这样的请求
domain.tld/dir/file.php%3Fid%3DUID%26qty=NUM%26... (from old site structure)
我表演
RewriteRule ^dir/file\.php(.*)$ script.php?qs=$1 [R,L]
这必须在所有涉及dir/file.php的指令之后
然后我可以在script.php中处理查询字符串$\u GET['qs']
它可能不适用于其他可能进入循环或不需要的结果的情况。在重写规则中使用[NE]标志在重写规则中使用[NE]标志
RewriteCond%{QUERY_STRING}^id\%3D(+)
重写规则^(.*)$1?id=%1[R=301,L]
是否通过“=”为file.php?id%3D1.Oh更改%3D,您已经尝试了%3F。。嗯,可能还有别的事情在进行中。有什么需要帮忙的吗?从谷歌网站管理员工具,我仍然得到这种错误。推荐人是链接到矿山的第三页。我无法以任何方式重定向它们。此时GWT summary显示编码的url:domain.com/file.php%3Fid%3D1不是像过去那样的解码urlRewriteCond%{QUERY\u STRING}^id\%3D(+)
RewriteRule^(.*$$1?id=%1[R=301,L]
是否通过“=”对file.php?id%3D1.Oh,您已经尝试了%3F。。嗯,可能还有别的事情在进行中。有什么需要帮忙的吗?从谷歌网站管理员工具,我仍然得到这种错误。推荐人是链接到矿山的第三页。我无法以任何方式重定向它们。此时GWT summary显示编码的url:domain.com/file.php%3Fid%3D1而不是像过去那样的解码url。不,它不起作用。我不知道该怎么办。没有其他类似的规则会影响http行为。不,它不起作用。我不知道该怎么办。没有编写会影响http行为的其他类似规则。@craniumonempty未解码的URL会生成404错误,因此会向用户显示404.php。我可以解码请求URI,并将其从该文件转发到解码url(如果编码和解码版本不同)。这是一种好的做法吗?Webspider将首先获得404头,然后@craniumemempty那些未解码的URL将生成404错误,因此404.php将显示给用户。我可以解码请求URI,并将其从该文件转发到解码url(如果编码和解码版本不同)。这是一种好的做法吗?网络蜘蛛会先得到404头,然后呢?