我想在URL中编码一个长的Base64编码的字符串。
目前,在mod-rewrite下重写的长URL(超过300个字符)会导致禁止(402)错误。
如果我的请求URL是355个字符,它会导致错误,但是当我将它减少到300个字符时,它可以工作。
服务器中是否有限制请求行大小的默认值?
我在服务器配置中找不到LimitRequestLine/FieldSize指令。
以下是我的重写规则:
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d
RewriteRule ^json/ base64json.php [L]
URL如下所示:
http://sub.mydomain.com/json/longrandomnumbers?param=xxx
我希望从重写的url中提取随机数和参数,但它显示禁止权限被拒绝,在2018年错误日志中显示: Mon Mar 19 21:03:31.711559 2018年] apache2 : error (36)文件名太长: client 167.220.24.128:45071 AH00036:访问/json/eyJldmVudHMiOlt7InNlc3Npb25JZCI6InMxNTAxMjY0OTIzeDYyZjg4MTNlNjkzMWM5eDU4MjQ0MjY2IiwiaW5zdGFudGlhdGlvbiI6IjkxMTMwMDQ3MTQ3OTE1ODgiLCJpbmRleCI6MCwiY2xpZW50VGltZXN0YW1wIjoxNTIwMzg3NTkwLjE2OSwibmFtZSI6ImNyZWF0aXZlTG9hZGVkIiwidmlld2FiaWxpdHkwME1lYXN1cmFibGUiOnRydWUsInZpZXdhYmlsaXR5NTAxTWVhc3VyYWJsZSI6ZmFsc2V9XX0=失败(文件系统路径'/var/www/track/json/eyJldmVudHMiOlt7InNlc3Npb25JZCI6InMxNTAxMjY0OTIzeDYyZjg4MTNlNjkzMWM5eDU4MjQ0MjY2IiwiaW5zdGFudGlhdGlvbiI6IjkxMTMwMDQ3MTQ3OTE1ODgiLCJpbmRleCI6MCwiY2xpZW50VGltZXN0YW1wIjoxNTIwMzg3NTkwLjE2OSwibmFtZSI6ImNyZWF0aXZlTG9hZGVkIiwidmlld2FiaWxpdHkwME1lYXN1cmFibGUiOnRydWUsInZpZXdhYmlsaXR5NTAxTWVhc3VyYWJsZSI6ZmFsc2V9XX0=') apache2 failed (文件系统路径
'/var/www/track/json/eyJldmVudHMiOlt7InNlc3Npb25JZCI6InMxNTAxMjY0OTIzeDYyZjg4MTNlNjkzMWM5eDU4MjQ0MjY2IiwiaW5zdGFudGlhdGlvbiI6IjkxMTMwMDQ3MTQ3OTE1ODgiLCJpbmRleCI6MCwiY2xpZW50VGltZXN0YW1wIjoxNTIwMzg3NTkwLjE2OSwibmFtZSI6ImNyZWF0aXZlTG9hZGVkIiwidmlld2FiaWxpdHkwME1lYXN1cmFibGUiOnRydWUsInZpZXdhYmlsaXR5NTAxTWVhc3VyYWJsZSI6ZmFsc2V9XX0=')
我尝试将RequestLine/FieldSize添加到apache2.conf中,没有用,想知道如何通过我使用的文件系统的限制,为什么在重定向到正确的路径base64json.php之前检查长度如此恼人,我可以将其作为一个长参数来做吗?可能是ubuntu文件系统造成的。
我在Ubuntu 14.02上使用Apache2.4.7。
发布于 2018-03-07 22:13:43
这必须在加载任何虚拟主机之前定义。把这个加到你的apache2.conf
里,对吧。您是否在编辑后重新启动apache守护程序?
sudo service apache2 restart
https://stackoverflow.com/questions/49161949
复制相似问题