【问题标题】:Redirect and keep the parameter in the url on .htaccess重定向并将参数保留在 .htaccess 的 url 中
【发布时间】:2020-08-15 05:31:18
【问题描述】:

这应该是一个简单的设置,但如果不熟悉所使用的术语,我无法提出解决方案。我尝试了几个在 Internet 上找到的示例。

我只是希望当用户通过 URL https://example.com?foo=bar 访问该网站时,他会被定向到 https://www.example.com/new-nice-page?foo=bar

更改页面并保留参数。

我测试的最后一件事:

RewriteEngine on
RewriteRule ^https://www.example.com/new-nice-page?foo=$ example.com?foo=$1 [QSA]

【问题讨论】:

  • 我刚刚进行的另一个测试:RewriteRule 上的 RewriteEngine ^example.com?foo=$ $1/new-nice-page?foo=$2 [R=301,L] 应该可以工作吗?

标签: .htaccess redirect mod-rewrite url-rewriting http-status-code-301


【解决方案1】:

您可以在 .htaccess 的顶部使用此重定向规则:

RewriteEngine On

RewriteCond %{QUERY_STRING} (^|&)foo= [NC]
RewriteRule ^/?$ /new-nice-page [L,R=301]

请注意,查询字符串会自动结转到目标 URL。

【讨论】:

  • 看起来不错。我会测试这个。谢谢,阿努巴瓦。
  • 抱歉耽搁了。但我忘了回来。这适用于我的问题。 :)
【解决方案2】:

看这个帖子:simple .htaccess redirect : how to redirect with parameters?

您只需重定向,无需担心参数,因为它们会自动传递:
Redirect permanent /jsn.php http://www.site2.com/jsn.php

【讨论】:

  • 真的吗?人!我现在就测试一下。如果它有效,我会回来告诉你。 :)
  • 我认为它不起作用。如果 url 有参数“foo”,它应该只重定向,如果没有,它会将所有内容重定向到新页面。
  • 我确定你想要什么。这是您观察到的,还是您想要的行为?
  • 只是如果我这样做,它总是会重定向,而我只需要在有“foo”参数时重定向,并转到同一个站点,只在另一个页面上保持这个参数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-27
  • 1970-01-01
  • 2015-02-03
  • 1970-01-01
  • 2018-01-22
  • 2015-07-27
相关资源
最近更新 更多