Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess RewriteCond中请求不带扩展名的文件名_.htaccess_Mod Rewrite_Url Rewriting - Fatal编程技术网

.htaccess RewriteCond中请求不带扩展名的文件名

.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和

有没有像{REQUEST\u FILENAME}这样的模式重写变量,但没有文件扩展名

以下功能正常,但我需要更改图像命名:

        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,会更容易吗?