我想在URL中编码一个长Base64编码的字符串。
目前在mod-rewrite下重写的长URL(超过300个字符)会导致禁止(402)错误。
如果我的请求网址是355个字符,则会导致错误,但是当我将其减少到300时,它就会生效。
服务器中是否存在限制请求行大小的默认值?
我在服务器配置中找不到LimitRequestLine / FieldSize指令。
这是我的重写规则:
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d
RewriteRule ^json/ base64json.php [L]
网址如下所示:
http://sub.mydomain.com/json/longrandomnumbers?param=xxx
我希望从重写的url中提取randomnumbers和param,但是在apache2错误日志中它表示禁止禁止权限,它说: 周一21年3月19日:03:31.711559 2018] [核心:错误] [PID 20504](36)文件名过长:客户167.220.24.128:45071] AH00036:进入/ JSON / eyJldmVudHMiOlt7InNlc3Npb25JZCI6InMxNTAxMjY0OTIzeDYyZjg4MTNlNjkzMWM5eDU4MjQ0MjY2IiwiaW5zdGFudGlhdGlvbiI6IjkxMTMwMDQ3MTQ3OTE1ODgiLCJpbmRleCI6MCwiY2xpZW50VGltZXN0YW1wIjoxNTIwMzg3NTkwLjE2OSwibmFtZSI6ImNyZWF0aXZlTG9hZGVkIiwidmlld2FiaWxpdHkwME1lYXN1cmFibGUiOnRydWUsInZpZXdhYmlsaXR5NTAxTWVhc3VyYWJsZSI6ZmFsc2V9XX0 =失败(文件系统路径“/无功/网络/曲目/ JSON / eyJldmVudHMiOlt7InNlc3Npb25JZCI6InMxNTAxMjY0OTIzeDYyZjg4MTNlNjkzMWM5eDU4MjQ0MjY2IiwiaW5zdGFudGlhdGlvbiI6IjkxMTMwMDQ3MTQ3OTE1ODgiLCJpbmRleCI6MCwiY2xpZW50VGltZXN0YW1wIjoxNTIwMzg3NTkwLjE2OSwibmFtZSI6ImNyZWF0aXZlTG9hZGVkIiwidmlld2FiaWxpdHkwME1lYXN1cmFibGUiOnRydWUsInZpZXdhYmlsaXR5NTAxTWVhc3VyYWJsZSI6ZmFsc2V9XX0 =') 和 失败(文件系统路径
'/无功/网络/曲目/ JSON / eyJldmVudHMiOlt7InNlc3Npb25JZCI6InMxNTAxMjY0OTIzeDYyZjg4MTNlNjkzMWM5eDU4MjQ0MjY2IiwiaW5zdGFudGlhdGlvbiI6IjkxMTMwMDQ3MTQ3OTE1ODgiLCJpbmRleCI6MCwiY2xpZW50VGltZXN0YW1wIjoxNTIwMzg3NTkwLjE2OSwibmFtZSI6ImNyZWF0aXZlTG9hZGVkIiwidmlld2FiaWxpdHkwME1lYXN1cmFibGUiOnRydWUsInZpZXdhYmlsaXR5NTAxTWVhc3VyYWJsZSI6ZmFsc2V9XX0 =')
我试图将RequestLine / FieldSize添加到apache2.conf,没有用,想知道如何通过我使用的文件系统的限制以及为什么在重定向到正确的路径之前以某种方式检查长度是如此烦人,这是base64json .php,我可以将它作为一个长参数吗?它可能是由ubuntu文件系统引起的。
我在Ubuntu 14.02上使用Apache2.4.7。
答案 0 :(得分:0)
必须在加载任何虚拟主机之前定义。
在您的apache2.conf
中添加此内容,对。
您是否在编辑后重新启动了apache守护程序?
sudo service apache2 restart