重新设计网站后,我有几页需要重定向。一切都停留在同一领域,只有几件事已经重组和/或更名。它们的形式是:

/contact.php

就是现在:

/contact-us.php

使用.htaccess文件,我添加了此行,这是我发现的最多推荐的一行:

RedirectMatch 301 /contact.php /contact-us.php

这大多是可以的 - 它可以完成工作 - 问题是,它也重定向:

  • /team1/contact.php
  • /不存在的文件夹/contact.php

是否有一种方法可以指定我只想将contact.php重定向到根中?

答案

RedirectMatch使用与URL路径相匹配的正则表达式。和您的正则表达/contact.php只是意味着任何包含的URL路径/contact.php 但不只是确切的任何URL路径/contact.php 。因此,请使用锚来进行字符串的开始和结尾(^$)

RedirectMatch 301 ^/contact\.php$ /contact-us.php

来自: stackoverflow.com