. htaccess, который принимает N
У меня есть хак для virtuemart, который через php код:
<?php
$path = $_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI'];
$image = imagecreatefromstring(file_get_contents($path));
$w = imagesx($image);$h = imagesy($image);
$watermark = imagecreatefrompng('watermark.png');
$ww = imagesx($watermark);
$wh = imagesy($watermark);
imagecopy($image, $watermark, (($w/1)-($ww/1)), (($h-40)-($wh/1.35)), 0, 0, $ww, $wh);
header('Content-type: image/jpeg');
header('Content-Type: text/html;charset=utf-8');
imagejpeg($image,null,95);
exit();?>
перезаписывает изображения в каталоге с помощью этого. htaccess, чтобы включить watermark. png в изображения:
RewriteRule ^(resized)($|/) - [L]
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule \.(gif|jpeg|jpg|png)$ watermark.php [QSA,NC]
Проблема в том, что есть файлы с N, которые, кажется, не идентифицируют код и, следовательно, заставляет его не работать.
Кто-нибудь может помочь мне узнать, что я должен был бы поставить, чтобы распознать файлы, содержащие N?
Много спасибо!
2
Author: Justino Rocamora Sánchez, 2016-12-16
1 answers
Проблема не в правилах .htaccess
или в том, что идентифицируется в коде.
Когда вы получаете URL с $_SERVER['REQUEST_URI']
в:
$path = $_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI'];
Закодирован. Например, URL /felizaño.png
получен как /feliza%C3%B1o.png
.
Для декодирования URL-адреса используется функция rawurldecode().
$path = rawurldecode($_SERVER['DOCUMENT_ROOT'] . $_SERVER['REQUEST_URI']);
2
Author: Mariano, 2016-12-23 20:01:14