2012-05-04 83 views
1

我们有一个URL需要根据两个URL变量的值重定向。 http请求如下:http://img.ourserver.com/junk/imgfolder?var1=size&var2=imgname。此网址应该重定向到以下http://img.ourserver.com/imgfolder/size/imgname.png301使用GET变量重定向URL

我们可以做到这一点无论是在一个.htaccess文件或者Apache的conf文件。

谢谢!

+1

那么,你尝试过什么?你可以在你的Apache配置中使用'RewriteRule'与'RewriteCond'结合使用;在过去的一个月里,SO在这方面出现了很多问题,以至于触及这个话题。 – larsks

+0

我们的主要问题是,这实际上与正常重写相反,因为我们的用户将提供带有vars的URL,并且我们需要重定向到干净的目录结构。我没有太多的运气发现与此相关的Q - 特别是在SA上有多个变量。 –

+0

例如,[this](http://stackoverflow.com/questions/1244881/rewrite-query-string)显示了如何匹配查询字符串中的任意文本块,然后将它们替换为'RewriteRule'。本示例仅从查询字符串中提取单个文本块,但显然可以概括解决方案。 – larsks

回答

1

启用mod_rewrite的,并通过httpd.conf的.htaccess,然后把这个代码在你.htaccessDOCUMENT_ROOT目录:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteCond %{QUERY_STRING} (^|&)var1=([^&]+)&var2=([^&]+) [NC] 
RewriteRule ^[^/]+/(imgfolder)/?$ $1/%1/%2.png? [L,R,NC]