【问题标题】:301 URL redirect using GET variables使用 GET 变量的 301 URL 重定向
【发布时间】:2012-05-14 09:22:00
【问题描述】:

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

我们可以在 .htaccess 文件或 Apache conf 文件中执行此操作。

谢谢!

【问题讨论】:

  • 那么,您尝试过什么?您可以在 Apache 配置中结合使用 RewriteRule 和 RewriteCond 来执行此操作;在过去一个月左右的时间里,这里有很多关于 SO 的问题。
  • 我们的主要问题是这实际上与正常的重写相反,因为我们的用户将提供带有变量的 URL,并且我们需要重定向到一个干净的目录结构。我没有找到与此相关的 Q 的运气——尤其是在 SA 上有多个变量时。
  • 好吧,例如,this 展示了如何匹配查询字符串中的任意文本块,然后将它们替换为 RewriteRule 的目标。这个例子只从查询字符串中提取了一个文本块,但你显然可以概括解决方案。

标签: http .htaccess redirect apache


【解决方案1】:

通过httpd.conf启用mod_rewrite和.htaccess,然后把这段代码放到你.htaccess的DOCUMENT_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]

【讨论】:

    猜你喜欢
    • 2010-10-26
    • 1970-01-01
    • 2013-09-19
    • 1970-01-01
    • 2020-02-14
    • 2014-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多