【发布时间】:2021-10-28 08:05:22
【问题描述】:
这个 htaccess 示例被标记为正在运行。我没有使用 htaccess 的经验。我想要做的是用 htaccess 重写图像 url。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_URI} (?i)(jpg|jpeg|png|gif)$
RewriteCond %{QUERY_STRING} h=([1-9]) [OR]
RewriteCond %{QUERY_STRING} w=([1-9])
RewriteRule (.*) resize.php?src=%{REQUEST_URI}&%{QUERY_STRING}
我的 htaccess 和 resize.php 在同一个目录中。 和我的形象:
<img src="<?= make_image($row->imgage,750,422); ?>">
图像助手
function make_image($url, $w, $h){
$str = parse_url($url);
$exp = explode("/", $str["path"]);
$file = end($exp);
$new_url = str_replace($url, 'https://www.example.com/public/tt/img/', $url);
return $new_url . $file . '?h='.$h.'&w='.$w;
}
目录:
【问题讨论】:
-
(?i)背后的想法是什么? -
您如何确定它“不起作用”?你到底在期待什么?您发布的代码本身可以“工作”。尽管它确实有一些奇怪之处,并且可以进行一些优化。你还有其他指令吗?
-
@arkascha 这是一个正则表达式风格的不区分大小写的匹配(模式修饰符)。 (替代 mod_rewrite
NC标志。) -
我编辑了我的问题。谢谢你所有的答案。顺便说一句,对不起我的英语。
标签: php .htaccess url-rewriting