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

时间:2017-02-06 06:33:30

标签: .htaccess mod-rewrite

我想按如下方式映射请求

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

    http://www.example.com/script_folder/image.php?parameter=XYZ

我的目录结构如下。

    .htaccess
    script_folder/
            - image.php

请注意, my_folder 是一个不存在的虚拟文件夹。该文件夹的任何父目录中都没有任何.htaccess。我正在使用mod_rewrite。

到目前为止,我已设法以不同的方式编写此代码,但没有运气

    RewriteBase /

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

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

请帮我纠正我的htaccess

1 个答案:

答案 0 :(得分:1)

您正在使用mod-rewrite混合mod-alias。 RedirectMatch是不同模块(mod别名)的一部分。

试试这个:

RedirectMatch ^/my_folder/(.+)/card.jpg$ /script_folder/image.php?perameter=$1 

这会将 /my_folder/xyz/card.jpg 重定向到 /script_folder/image.php?perameter=xyz ,将地址栏从输入的网址更改为新的网址。如果您希望浏览器保留在键入的URL上,您可以使用以下基于mod重写的解决方案:

RewriteEngine on

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