Apache RewriteRule 导致 500 错误

Apache RewriteRule 导致 500 错误

我正在尝试使用一个图像处理应用程序。它需要 .htaccess 文件中的 Apache 指令。但无论我对 RewriteRule 做什么,我都无法让它工作。导致服务器 500 错误。

规则是:

RewriteRule \.(?:jpe?g|gif|png)$ adaptive-images.php

这应该获取任何 jpg/gif/png 文件并将其发送到文件adaptive-images.php,然后在那里运行图像大小调整过程。

此时,我已经超出了 RewriteRules 的专业知识范围。

答案1

RewriteRule 指令的第一个参数是正则表达式,因此您需要转义句点:\.。您的规则也不会匹配,因为您需要匹配整个 URI,而不仅仅是文件扩展名。因此,必须.*匹配扩展名之前的任何内容(例如 filename.jpg 或 /images/filename.jpg)。

RewriteRule .*\.(?:jpe?g|gif|png)$ adaptive-images.php

我不认为忘记这一点会自行导致 500 错误,所以如果这不能解决问题,您应该查看 Apache 错误日志以获取更多详细信息。

此外,使用此重定向不会将图像文件“发送”到任何地方,除非您在 PHP 中做一些技巧来读取 HTTP referer,否则重定向的页面将不知道它“传递”了哪个图像。

相关内容