我想按如下方式映射请求
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
答案 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]