Dan*_*iel 12 mod-rewrite .htaccess
我的网址方案是 /foo/var1-var2-var3.../bar
我正在使用这些 mod_rewrite 规则:
RewriteBase /foo/
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [PT,L]
Run Code Online (Sandbox Code Playgroud)
如果字符串 'var1-var2...' 的长度大于 257 个字符,则返回错误 403 Forbidden 和 404。但是,如果 'var1-var2...' 字符串的长度为 257 个字符或更少,并且后跟一个斜杠,则剩余 url 的长度可以是任意长度。如何克服这一限制?
h0t*_*1r3 12
您遇到了底层文件系统的限制。
看看文件系统限制。您将看到大多数文件名的最大长度为 255 字节。因此,当 apache 和/或您的重写规则检查文件是否存在时,操作系统会向 apache 返回一个错误。
对于 Apache,如果您将这样的规则放在 .htaccess 文件中,那么解决该问题就为时已晚。Apache 将已经尝试统计长文件名,从而引发文件系统错误“(36) 文件名太长”,返回 403 错误。
我看到两个选项:
归档时间: |
|
查看次数: |
13141 次 |
最近记录: |