【问题标题】:Redirect user to different site using apache rewrite rule使用 apache 重写规则将用户重定向到不同的站点
【发布时间】:2016-06-02 00:58:25
【问题描述】:

我正在处理生产环境中的特定条件,我需要将用户重定向到第三方以防特定 url。

我知道重写规则可以用于这种情况,但是我在 Apache 中遇到了Redirect,如果资源移动到另一台服务器可以使用它。

谁能帮我理解正确的方法,我想使用这个 URL 'www.mysite.com/some/optional parameter/testpage' 和mysite.com/some/optional parameter/testpage 重定向到http://testpage.mysite.com/

#With Redirect
Redirect "www.mysite.com/testpage" "http://testpage.mysite.com/"
Redirect "mysite.com/testpage" "http://testpage.mysite.com/"

这是实现这一目标的正确方法还是我需要采取不同的方法。

【问题讨论】:

标签: apache .htaccess redirect mod-rewrite


【解决方案1】:

您不能使用Redirect 指令来匹配请求中的主机名。最好使用mod_rewrite 并执行301 重定向。

RewriteEngine On

RewriteCond %{HTTP_HOST} ([^.]+\.[^.]+)$ [NC]
RewriteRule (?:^|/)(thepact)/?$ http://$1.%1 [L,NC,R=301]

【讨论】:

  • $1 基本上是testpage(从RewriteRule 捕获)和%1RewriteCond 中可选www 之后的一部分(它将在%1 中捕获mysite.com )。你测试过这条规则吗?
  • 我试过了,但它对我不起作用,我在mysite.com/optional/testpage 之类的域名后面有一些额外的参数,对我来说,重定向会发生在不同的 URL 上,而不是在同一个 URL 中
  • 问题说 URL 是 www.mysite.com/testpage。请提供准确的信息。您尝试重定向的完整 URL 是什么?还要确保这条规则是第一条规则。
  • 对不起,我想将mysite.com/optional/parameters/testpage重定向到http://testpage.mysite.com/,两者都托管在不同的位置。我已经更清楚地更新了我的问题
  • 好的,在完全清除浏览器缓存后,尝试将我更新的规则作为 htaccess 中的第一条规则。
猜你喜欢
  • 1970-01-01
  • 2017-08-21
  • 2019-04-08
  • 1970-01-01
  • 1970-01-01
  • 2017-07-04
  • 1970-01-01
  • 2015-12-27
  • 1970-01-01
相关资源
最近更新 更多