【问题标题】:Convert Redirectmatch to RewriteRule将 Redirectmatch 转换为 RewriteRule
【发布时间】:2014-07-26 13:23:03
【问题描述】:

我正在尝试在我们的子目录 www.example.com/us/ htaccess 文件(不是根 htaccess)中放置一行以获取 www.example.com/us 和 www.example.com/us/ 进行重定向到 www.example.com,但没有别的——所以 www.example.com/us/file.txt 或 www.example.com/dir/file.txt 不会重定向。

我试过了:

RedirectMatch ^/us$ http://www.example.com/
RedirectMatch ^/us/$ http://www.example.com/

但由于文件中的其他重写条件导致了循环(我认为)。

我尝试转换为 RewriteRule 如下

RewriteEngine on
RewriteRule ^us(.*)$ /$1 [R=301,L]

运气不好。

RewriteEngine on
RewriteRule ^us/?$ /$1 [R=301,L]

运气不好。

感谢您的帮助。

【问题讨论】:

  • 如果您实际上想转到/,为什么要尝试重定向到/$1?此外,您的第二条规则甚至没有捕获任何内容,因此在此处使用反向引用甚至没有意义。
  • 如果我知道如何让它发挥作用,我就不会问问题了。可以提个建议吗?
  • @user3879788 总是很乐意提供帮助 :) 请将这个答案标记为已接受,然后人们现在会解决它,我将非常感激 :) 它是数字二下方的勾号和箭头离开 :) 谢谢。

标签: regex .htaccess mod-rewrite redirect


【解决方案1】:

这样就可以了

RewriteEngine on
RewriteCond %{REQUEST_URI} ^/us/*$
RewriteRule ^(.*)$ / [R=301,L]

【讨论】:

  • 有效!非常感谢你。 (我在 stackoverflow 上的第一个问题在几分钟内就得到了回答——太棒了。)
  • @user3879788 总是很乐意提供帮助 :) 请将这个答案标记为已接受,然后人们现在会解决它,我将非常感激 :) 它是数字二下方的勾号和箭头离开 :) 谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-12-04
  • 2018-03-26
  • 1970-01-01
  • 2016-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多