Ich benutze ein Skript, um Bilder im laufenden Betrieb durch eine URL zu markieren.Verwenden von "Mod_Rewrite" mit Bild-URL-Parametern
Zum Beispiel: http://example.com/watermark.php?filename=assets/img/temp/temp_share.jpg
würde in temp_share.jpg
mit einem Wasserzeichen auf dem neuen Bild führen.
Ich versuche mod_rewrite
zu verwenden, um die URL zu so etwas wie http://example.com/filename/assets/img/temp/temp_share.jpg
ich den Generator bei this site verwendet, um aufzuräumen und es gab mir RewriteRule ^filename/([^/]*)$ /watermark.php?filename=$1 [L]
.
Aber wenn ich zu http://example.com/filename/assets/img/temp/temp_share.jpg
gehen versuchen, bekomme ich einen Fehler von Not Found The requested URL /filename/assets/img/temp/temp_share.jpg was not found on this server.
Ich bin nicht sicher, was ich falsch gemacht habe.
Vollständiger Inhalt meiner .htaccess
ErrorDocument 400 /err.php?err=400
ErrorDocument 401 /err.php?err=401
ErrorDocument 403 /err.php?err=403
ErrorDocument 404 /err.php?err=404
ErrorDocument 500 /err.php?err=500
ErrorDocument 502 /err.php?err=502
ErrorDocument 504 /err.php?err=504
Options -MultiViews
RewriteEngine On
RewriteBase/
RewriteRule assets/styles/style.css assets/styles/style.php [L]
RewriteRule assets/styles/m.style.css assets/styles/m.style.php [L]
RewriteRule ^filename/([^/]*)$ /watermark.php?filename=$1 [L]
<FilesMatch ".(jpg|png|gif|jpeg)$">
ErrorDocument 404 error/stormtrooperBrokenImage.jpg
</FilesMatch>
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin http://lucycypher.com
Header set Access-Control-Allow-Credentials true
</IfModule>
Inhalt watermark.php
:
$imgpath=$_REQUEST['filename'];
header('content-type: image/jpeg');
$watermarkfile="assets/img/logo_variations/logo_watermark_75.png";
$watermark = imagecreatefrompng($watermarkfile);
list($watermark_width,$watermark_height) = getimagesize($watermarkfile);
$image = imagecreatefromjpeg($imgpath);
$size = getimagesize($imgpath);
$dest_x = ($size[0] - $watermark_width)/2;
$dest_y = ($size[1] - $watermark_height)/2;
imagecopy($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height);
imagejpeg($image);
imagedestroy($image);
imagedestroy($watermark);
Ich sehe. Wenn ich also richtig verstehe, wenn ich '[^ a]' setzen soll, dann wäre das eine Zeichenklasse für alle Zeichen mit Ausnahme von 'a'? –
Genau. Es gibt weitere Informationen [hier] (https://httpd.apache.org/docs/current/rewrite/intro.html#regex) Siehe negative Charakterklasse. – Phil