【问题标题】:Redirect url if contains如果包含则重定向 url
【发布时间】:2015-10-14 19:43:48
【问题描述】:

我需要一个 htaccess 代码来重定向这个 url

domain.com/download.php?server=1&file=/movies/33.jpeg

domain.com/movies/33.jpeg

如果网址包含 JPEG 怎么可能?

【问题讨论】:

  • domain.com/download.php?server=1&file=/movies/ 中没有“jpeg”。什么意思?

标签: .htaccess redirect


【解决方案1】:

要从 URL 重写为带有查询字符串的脚本,您可以使用这个简单的 RewriteRule

RewriteRule ^movies/.*?\.jpeg$ ^download.php?server=1&file=%{REQUEST_URI} [L]

当用户输入http://domain.com/movies/33.jpeg时,服务器将服务/download.php?server=1&file=/movies/33.jpeg


要从带有查询字符串的 URL 重定向,您必须首先捕获带有 RewriteCond 的部分,然后在 RewriteRule 中使用这些部分

RewriteCond %{QUERY_STRING} file=(.*?\.jpeg)
RewriteRule ^download.php$ /movies/%1? [R,L]

当用户输入http://domain.com/download.php?server=1&file=/movies/33.jpeg时,服务器会将浏览器重定向到http://domain.com/movies/33.jpeg

【讨论】:

  • 我想从 download.php?server=1&file=/movies/33.jpeg 重定向到domain.com/movies/33.jpeg
  • 你的意思是反过来,如果用户输入download.php?server=1&file=/movies/33.jpeg,他应该被重定向到movies/33.jpeg
  • "你的意思是反过来,如果用户输入 download.php?server=1&file=/movies/33.jpeg 他应该被重定向到 movies/33.jpeg?"是的
  • RewriteCond %{QUERY_STRING} file=([.*?.jpeg) RewriteRule ^download.php$ /movies/%1 [R,L] 不起作用。错误 500
  • 我搞砸了正则表达式。它现在应该可以工作了。
猜你喜欢
  • 2012-11-01
  • 2016-03-23
  • 1970-01-01
  • 2018-07-31
  • 1970-01-01
  • 1970-01-01
  • 2014-02-11
  • 2014-03-08
  • 1970-01-01
相关资源
最近更新 更多