我正在使用以下.htaccess配置指令(将所有非文件名请求重定向到单个PHP文件):
RewriteEngine on
Options +FollowSymLinks
RewriteBase /
RewriteRule !(\.ttf|\.eot|\.woff|\.xpi|\.xml|\.txt|\.air|\.exe|\.zip|\.pdf|\.ico|\.gif|\.jpg|\.png|\.jpeg|\.js|\.swf|\.css|\.php|\.html)$ mod_rewrite_redirector.php [L]
如何使上述正则表达式不区分大小写?我已尝试[L,NC]或将(?i)置于开头。 NC选项不适用于所有Apache2安装(各种版本),(?i)无效。
如何制作不匹配URL的正则表达式,其类似于扩展名在2到4个字符之间的文件名?
感谢您的帮助。
答案 0 :(得分:1)
试试这个:
RewriteRule !\.[a-zA-Z0-9]{2,4}$ mod_rewrite_redirector.php [L]
但是如果您想将请求重定向到服务器上不存在的文件,最好使用:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . mod_rewrite_redirector.php [L]