我试图解决这个问题很长时间但仍然无法解决。我试过了htaccess get filename without path,但它对我没用。
这是我的目录
/www
|-- /other.org
|-- /example.com
|-- /sub
|-- .htaccess
|-- success.html
|-- /imgs
|-- photo.png
当http://example.com/sub/imgs处有对该图片或文件的请求时,我试图查找http://example.com/sub中是否存在图片。如果存在,则用户将被重定向到success.html。但我不能这样做。
例如,如果我输入浏览器
http://example.com/sub/photo.png
它检查/sub/imgs/photo.png中是否存在文件photo.png或任何类型的图像,它不存在且不应存在于/ sub目录中。
http://example.com/sub/imgs/photo.png
重定向的输出将是success.html(如果存在)。
http://example.com/sub/success.html
我试过
RewriteCond %{DOCUMENT_ROOT}/sub%{REQUEST_URI} -f
RewriteRule (.*)\.(gif|jpg|jpeg|png)$ success.html
但%{REQUEST_URI}
为/sub/photo.png
,因此输出为http://example.com/sub/imgs/sub/photo.png
。在最后一个斜杠(/)之后,没有任何可以获取文件名或任何内容的请求。是否可以只获取文件名photo.png
,以便我可以这样做:
RewriteCond %{DOCUMENT_ROOT}/sub/imgs%{FILE_NAME} -f
RewriteRule (.*)\.(gif|jpg|jpeg|png)$ success.html
有没有办法让这个工作?
答案 0 :(得分:1)
您可以在sub/.htaccess
中尝试此规则:
RewriteEngine On
RewriteBase /sub/
RewriteCond %{DOCUMENT_ROOT}/sub/imgs/$1 -f
RewriteRule ^(.+\.(?:jpe?g|png|gif|tiff|ico))$ success.html [L,NC]