【问题标题】:Redirecting all url's containing重定向所有包含
【发布时间】:2014-08-17 10:18:44
【问题描述】:

我正在尝试重定向多个 url,但我无法实现/找到确切的方法。

基本上我需要它来重定向链接中的所有页面?page=test 并忽略某些东西=else

www.servername.com/en/?page=test&something=else

www.servername.com/en/redirected

这是我尝试过的

RewriteCond %{QUERY_STRING}  ^page=test\(\.\*\)$ [NC]
RewriteRule ^index\.php$ www.servername.com/en/redirected? [R=301,NE,NC,L] 

【问题讨论】:

  • 为什么要在^page=test\(\.\*\)$ 中转义(.*)
  • Ops 忘记删除了 :)

标签: php regex .htaccess mod-rewrite redirect


【解决方案1】:

RewriteCond 中的正则表达式似乎有问题,可以使用:

RewriteCond %{QUERY_STRING} (^|&)page=actor(&|$) [NC]
RewriteRule ^ %{REQUEST_URI}/redirected? [R=301,NE,NC,L] 

另外,您在问题中提到了/en/,并在您的示例中使用了/index.php

【讨论】:

  • 重定向仍然没有触发,基本上旧链接不一定包含 /en/ 但新链接确实有多种语言
  • 您在浏览器中看到的应该重定向但没有重定向的 URL 是什么?还要确保这是您的第一条规则。
  • /index.php?page=actor&idactor=142 这是它的样子,但我只需要重定向所有包含 ?page=actor 的页面
  • 但这不会重定向,因为它只重定向查询字符串包含page=test的URL
猜你喜欢
  • 2018-06-13
  • 2019-11-30
  • 2015-10-25
  • 1970-01-01
  • 2012-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多