我在apache error.log中看到了这个错误: 文件名太长:访问/ foo = bar失败
值为290 char。经过一些研究后,我发现默认的最大限制在PHP中设置为255 char。我尝试使用'suhosin.get.max_value_length = 512'将其增加到512个字符。我确认通过从web运行phpinfo()来应用此更改。
但我仍然收到此错误。
问题是,如何增加限额?
我在Ubuntu 12.04上使用CodeIgniter,php 5.3.10-1ubuntu3.5和Suhosin-Patch
更新
我也在apache中进行url重写,看起来这个限制来自Linux系统中的最大文件名限制(参考:https://serverfault.com/questions/120397/max-length-of-url-257-characters-for-mod-rewrite)
任何人都可以确认一下吗?为什么mod重写规则会受到最大文件名限制的限制? :(
以下是重写规则:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/(index\.php|images|css|js|robots\.txt|favicon\.ico)
RewriteRule ^(.*)$ /app/index.php\?f=$1 [L]
THX