私のURLスキームは/foo/var1-var2-var3.../barです
私はこれらのmod_rewriteルールを使用しています:
RewriteBase /foo/
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [PT,L]
文字列「var1-var2 ...」の長さが257文字を超える場合、エラー403 Forbiddenおよび404が返されます。ただし、「var1-var2 ...」文字列の長さが257文字以下で、その後にスラッシュが続く場合、残りのURLの長さは任意の長さにすることができます。どうすればこの制限を克服できますか?
基盤となるファイルシステムの制限に直面しています。
File System Limits を見てください。ファイル名の最大長は255バイトであることがわかります。したがって、Apacheおよび/またはリライトルールがファイルの存在を確認すると、オペレーティングシステムによってエラーがApacheに返されます。
Apacheでは、このようなルールを.htaccessファイルに記述した場合、問題を回避するには遅すぎます。 Apacheはすでに長いファイル名をstatしようとしているため、ファイルシステムエラー「(36)File name too long」がスローされ、403エラーが返されます。
2つのオプションが表示されます。