.htaccess虚拟目录映射和提取变量

.htaccess虚拟目录映射和提取变量,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我想将请求映射如下 http://www.example.com/my_folder/XYZ/card.jpg 进入 我的目录结构如下 .htaccess script_folder/ - image.php 请注意,my_文件夹是一个不存在的虚拟文件夹。该文件夹在其任何父目录中都没有任何.htaccess。我正在使用mod_重写 到目前为止,我已经设法以不同的方式编写了这段代码,但运气不好 RewriteBase / Rew

我想将请求映射如下

    http://www.example.com/my_folder/XYZ/card.jpg
进入

我的目录结构如下

    .htaccess
    script_folder/
            - image.php
请注意,my_文件夹是一个不存在的虚拟文件夹。该文件夹在其任何父目录中都没有任何.htaccess。我正在使用mod_重写

到目前为止,我已经设法以不同的方式编写了这段代码,但运气不好

    RewriteBase /

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    RedirectMatch "^/my_folder/(.*)/card.jpg" "image.php?parameter=$1"

请帮助我更正我的htaccess

您将mod alias与mod rewrite混用。重定向匹配是差异模块(mod alias)的一部分

试试这个:

RedirectMatch ^/my_folder/(.+)/card.jpg$ /script_folder/image.php?perameter=$1 
这将重定向到/my_folder/xyz/card.jpg/script_folder/image.php?perameter=xyz将地址栏从键入的url更改为新的url。如果希望浏览器停留在键入的url上,可以使用以下基于mod rewrite的解决方案:

RewriteEngine on

RewriteRule ^my_folder/(.+)/card\.jpg$ /script_folder/image.php?perameter=$1 [L]

适合我的目的,但在进一步检查后,我发现它允许像my_folder/ABC/DEF/card.jpg这样的URL也被重定向。非常感谢您将模式(+.+)更改为([^/]+)以匹配uri的确切部分。
RewriteEngine on

RewriteRule ^my_folder/(.+)/card\.jpg$ /script_folder/image.php?perameter=$1 [L]