【问题标题】:.htaccess Redirect for exact page but not query strings.htaccess 重定向到确切的页面,但不是查询字符串
【发布时间】:2021-07-02 14:15:38
【问题描述】:

我们一直在尝试使用 .htaccess 规则为 BuddyPress 消息撰写页面创建动态重定向。我希望撰写区域无法访问,但是当有人单击某人个人资料上的“私人消息”按钮时,他们仍然可以访问该页面并向用户发送消息。

我找到了这篇文章,但我的重定向无法正常工作 - htaccess redirect exact match, exclude all query strings

撰写区域可以很好地重定向到主页,但是在尝试向用户发送消息期间添加查询字符串时,我们会被重定向到主页,但查询字符串仍保留在 URL 中。

这是我正在使用的:

RewriteEngine On
RewriteBase /
RewriteRule ^members/([\w-]+)/messages/compose/?$ / [L,R=302]

对此的任何帮助将不胜感激。

谢谢。

【问题讨论】:

  • 欢迎来到 SO,感谢您继续努力。您能否确认两件事:第一-您要重定向 URL 或禁止访问它?第二-我将您的 htaccess 文件放在服务器上的什么位置?
  • 尝试在您的规则中使用QSD 标志。 QSD 标志用于丢弃新 URL 中的旧查询字符串。[L,R=302,QSD] 应该可以工作。
  • @RavinderSingh13 我认为重定向会很好。它将防止任何功能潜在地破坏。该文件位于 /public_html/ 文件夹中。谢谢你的建议,阿米特。不幸的是,它对我不起作用:(
  • @Nifty,好的,所以从 url http://localhost:80/members/test-test/messages/compose/ 到哪个 url?请确认一次。
  • @Nifty 好吧,从你的问题我理解的是,“当 URL 路径为 /members/foobar/messages/compose/?querystring 时,你希望它重定向到 / 而不是 /?querystring 。这是你想要的吗?

标签: wordpress .htaccess redirect buddypress


【解决方案1】:

这应该适合你。请记住将代码放在 htaccess 的顶部或其他指令之前。

RewriteEngine on

#Redirect the URL to / if no query string is present
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^members/([\w-]+)/messages/compose/?$ / [L,R=302]

【讨论】:

    【解决方案2】:

    这对我有用。谢谢大家的建议。

    # Redirect only when there is no query string present
    RewriteEngine on
    RewriteCond %{QUERY_STRING} ^$
    RewriteRule ^members/([\w-]+)/messages/compose/$ / [R=302,L]
    

    【讨论】:

      猜你喜欢
      • 2012-09-01
      • 2016-04-25
      • 2015-05-08
      • 2020-12-14
      • 2013-08-06
      • 1970-01-01
      • 2013-10-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多