.htaccess RewriteCond中请求不带扩展名的文件名
有没有像{REQUEST\u FILENAME}这样的模式重写变量,但没有文件扩展名 以下功能正常,但我需要更改图像命名:.htaccess RewriteCond中请求不带扩展名的文件名,.htaccess,mod-rewrite,url-rewriting,.htaccess,Mod Rewrite,Url Rewriting,有没有像{REQUEST\u FILENAME}这样的模式重写变量,但没有文件扩展名 以下功能正常,但我需要更改图像命名: RewriteCond %{REQUEST_FILENAME}.webp -f RewriteRule \.(jpe?g|png)$ %{REQUEST_FILENAME}.webp [NC,L] 但是现在我需要将我的图像命名从:“image.jpg.webp”更改为“image\jpg.webp”。 我需要有关新的RewriteCond和
RewriteCond %{REQUEST_FILENAME}.webp -f
RewriteRule \.(jpe?g|png)$ %{REQUEST_FILENAME}.webp [NC,L]
但是现在我需要将我的图像命名从:“image.jpg.webp”更改为“image\jpg.webp”。
我需要有关新的RewriteCond和RewriteRule的帮助,以便在webp映像存在时将“image.jpg”重写为“image_jpg.webp”。只需在
RewriteRule
中捕获值,并在RewriteCond
中使用它:
RewriteCond %{REQUEST_URI} ^(.*/)([^/]+)\.(jpe?g|png)$ [NC]
RewriteCond %{DOCUMENT_ROOT}%1%2_%3.webp -f
RewriteRule ^ %1%2_%3.webp [L]
我不知道为什么,但这对我不起作用。My image.jpg不能作为image_jpg.webp(找不到图像)使用。是的example.com/image_jpg.webp可以工作。抱歉,没有“找不到图像”消息。我只收到了jpg图像,而不是webp图像。好的,这可能是由于您的浏览器缓存。在完全清除浏览器缓存后,是否可以在新浏览器中进行测试。我已经进行了测试,没有运气。我认为问题在于%{DOCUMENT_ROOT}指向根,而不是指向图像所在的位置:example.com/folder/image_jpg.webp或example.com/folder/folder2/image_jpg.webp等。jpg和webp图像始终位于同一文件夹和位置。谢谢,这可能有用,但看起来非常复杂。如果我把我的名字改为“image.jpg”和“image.webp”而不使用ext,会更容易吗?