RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^image/(.*\.(jpg|jpeg|png|gif))$ pic.php?image=$1 [L] ,更改成nginx伪静态
时间: 2024-02-22 07:56:07 浏览: 17
要在 Nginx 上实现伪静态规则,可以使用 `location` 指令来匹配请求,并将其重定向到 PHP 脚本中。下面是一个示例配置,演示如何将请求重定向到 `pic.php` 脚本中:
```
location /image {
if (!-f $request_filename) {
rewrite ^/image/(.*\.(jpg|jpeg|png|gif))$ /pic.php?image=$1 last;
}
}
```
这个配置将匹配 `/image` 目录下的所有请求,如果请求的文件不存在,则将请求重定向到 `pic.php` 脚本中,并将图片文件名作为参数传递给脚本。
在 `pic.php` 脚本中,可以使用 GD 库来处理图片,并添加水印。下面是一个示例代码,演示如何给图片添加水印并输出到浏览器:
```php
<?php
// 获取图片路径
$imagePath = 'image/' . $_GET['image'];
// 加载图片
$image = imagecreatefromjpeg($imagePath);
// 设置水印文字
$watermarkText = 'Watermark';
// 设置字体和字体大小
$font = 'arial.ttf';
$fontSize = 20;
// 设置水印文字的颜色
$color = imagecolorallocate($image, 255, 255, 255);
// 在图片上添加水印文字
imagettftext($image, $fontSize, 0, 10, 50, $color, $font, $watermarkText);
// 输出图片
header('Content-type: image/jpeg');
imagejpeg($image);
// 释放内存
imagedestroy($image);
```
这个代码会根据传递的图片路径加载图片,并在图片上添加水印文字。处理后的图片将输出到浏览器。你可以根据需要进行调整。
需要注意的是,为了能够处理图片并添加水印,这个代码需要 `GD` 扩展的支持,确保在运行之前已经安装并启用了该扩展。