嗨我的服务器出了问题。我有4个到网页的入站链接,看起来像这样:
myurl.com/default/page.php%3Fid%3D13
他们应该是这样的:
myurl.com/default/page.php?id=13
我需要做些什么来实现这个目标?当您访问已编码的URL链接时,Apache会发出404错误
答案 0 :(得分:0)
答案 1 :(得分:0)
一个可能的解决方案(虽然我不会说它是一个好的解决方案)是设置一个尝试解码URL的404处理程序。也许你可以做一些花哨的匹配来试图猜测404是否是由于URL被编码。
if(stripos($url, '%3F') !== false){
header('Location: ' . urldecode($url) );
exit;
}
答案 2 :(得分:0)
nginx将请求的文件名与args分开,并对规范化的URI进行操作,因此,在location
和rewrite
的第一个参数中,%3F
部分只能匹配直接由?
字符(而请求中的显式?
将永远不会在此处填写),如下:
rewrite ^/([^?]*)\?(.*)$ /$1?$2? permanent;