【问题标题】:htaccess redirect if url contains specific string如果 url 包含特定字符串,则 htaccess 重定向
【发布时间】:2010-11-08 10:30:11
【问题描述】:

我们安装了一个新的商店软件,我已经为所有旧页面设置了重定向,但有一个我无法开始工作。如果url包含

cp_tpl=productlist.html

然后我想重定向到主网站。因此,例如旧网址可能是

http://www.gocellular.ca/index.php?cp_tpl=productlist.html&cp_cat=803&cp_sid=1xxxxxx

我想重定向到

www.gocellular.ca

'cp_tpl=productlist.html' 可以在 url 中的任何位置 - 基本上我只想检查字符串 'cp_tpl=productlist.html' 是否包含在 url 中的任何位置,然后重定向。我已经尝试了大约 100 种不同的 .htaccess 重写,但无法让它工作!如果有任何想法,我将不胜感激......谢谢!

【问题讨论】:

  • 列出你尝试过的一些 RewriteRules。
  • RewriteRule cp_tpl=productlist\.html http://www.gocellular.ca/ [R,L] 不工作吗? (当然 http: 后面没有空格。)

标签: .htaccess


【解决方案1】:

为了在查询字符串中捕获该字符串,如您在此处显示的那样,您必须使用 RewriteCond,因为不会根据重定向规则中的查询字符串检查正则表达式。像这样的东西应该可以解决问题:

RewriteCond %{QUERY_STRING} cp_tpl=productlist.html
RewriteRule .* / [R,L]

以上将保持查询字符串不变。如果您想删除查询字符串,只需添加一个 ? /之后,即:

RewriteRule .* /? [R,L]

【讨论】:

  • 我已经实现了这个,但它对我不起作用。如果我的网址包含“论坛”一词,那么它应该被重定向到 83answers.com。我在我的 htaccess RewriteCond %{QUERY_STRING} 论坛 RewriteRule 中写了以下内容。* 83answers.com [R,L] 但它不起作用,请帮我解决这个问题
  • 这个问题专门针对查询字符串。类似于 RewriteRule forum 83answers.com [R,L] 的内容应该覆盖 URL 的其余部分。
猜你喜欢
  • 1970-01-01
  • 2014-02-26
  • 2011-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多