我正在使用 mod_rewrite 来重写这样的 URL:
http://example.com/1,2,3,4/foo/
Run Code Online (Sandbox Code Playgroud)
通过在 .htaccess 中执行此操作:
RewriteEngine On
RewriteRule ^([\d,]+)/foo/$ /foo.php?id=$1 [L,QSA]
Run Code Online (Sandbox Code Playgroud)
它工作正常,除了当“1,2,3,4”变成长度超过 255 个字符的字符串时,Apache 返回“403 Forbidden”。
foo.php?id=1,2,3,4
直接访问没有问题,即使 id 字符串很长,但这对我来说不是一个选择。
我应该调整一些 Apache 或其他设置吗?
更新:我用 RewriteLogLevel 9 打开了 RewriteLog。使用一个短的 id 字符串,我在我的日志文件中得到了几行。但是当 id 字符串大于 255 个字符时,不会记录任何内容(好像 mod_rewrite 甚至没有执行?)。
如果您觉得这个问题有趣/有帮助,请点赞。