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