在Apache htaccess中,有没有一种方法可以使用参数作为子文件夹,而不重定向到真实的的URL?
例如:
https://example.com/folder1/folder2/a.jpg?version=small
至
https://example.com/folder1/folder2/small/a.jpg的
我已经尝试了各种方法,但都不起作用。例如:
RewriteCond %{QUERY_STRING} ^version=([^&]+)
RewriteRule ^([^/]+)/([^/]+)\.jpg$ $1/%1/$2 [L]
字符串
备注:
我还试图使版本文件夹不可用在直接请求
第一个月
3条答案
按热度按时间woobm2wo1#
是的,您可以在.htaccess文件中使用动态文件扩展名来实现所需的URL重写。为此,您需要修改RewriteRule中的正则表达式,以捕获动态扩展并在重写的URL中使用它。
以下是实现此目标的方法:
字符串
RewriteRule中的(.+)捕获动态文件扩展名,替换中的%3表示重写URL中捕获的扩展名。
oknrviil2#
您可能需要相应地调整RewriteRule中的正则表达式。此外,请确保在进行任何更改之前备份您的.htaccess文件,以避免您的网站出现潜在问题。
字符串
RewriteRule中的%1引用RewriteCond指令中捕获的值,该值是查询字符串中的版本参数。
ijxebb2r3#
这将为您指明正确的方向:
字符串
RewriteCond
提取指定为“version”参数的 word,RewriteRule
* 在内部 * 使用提取的版本字和文件名重写请求。很可能您将不得不调整实现中的细节以匹配您的具体情况。