的.htaccess 301重定向单页(.htaccess 301 redirect of sing

2019-07-17 23:38发布

网站改版后,我有一对夫妇的需要重定向的页面。 一切都停留在同一个域中,只是一对夫妇的事情都进行了重组和/或重命名。 它们的形式是:

/contact.php

就是现在:

/contact-us.php

使用.htaccess文件,我已经添加了这条线,这是一个我觉得最推荐:

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

这主要是细 - 它的工作 - 问题是,它也重定向:

  • /team1/contact.php
  • /non-existant-folder/contact.php

有没有指定我只想重定向根contact.php的一种方式?

Answer 1:

RedirectMatch使用是对URL路径相匹配的正则表达式。 而你的正则表达式/contact.php只是意味着任何包含URL路径/contact.php但不仅仅是这正是任何URL路径/contact.php 。 因此,使用的字符串的开始和结束的锚( ^$)

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


Answer 2:

这应该这样做

RedirectPermanent /contact.php /contact-us.php 


Answer 3:

redirect 301 /contact.php /contact-us.php

有使用redirectmatch规则是没有意义的,然后有那么他们是完全一致的写你的链接。 如果不包括你没有排除! 只需使用重定向不匹配,然后使用正常的链接



Answer 4:

你也可以使用一个重写规则 ,如果你想模板匹配和重定向的URL的能力。



Answer 5:

如果你喜欢用最简单的可能的解决方案的问题,以替代RedirectMatch是更基本的, 重定向指令。

它不使用模式匹配,这样可以更明确,更容易让别人理解。

<IfModule mod_alias.c>

#Repoint old contact page to new contact page:
Redirect 301 /contact.php http://example.com/contact-us.php

</IfModule>

查询字符串应该延续,因为文档说:

超出匹配URL路径其他路径信息将被附加到所述目标URL。



Answer 6:

这将您的商店页面重定向到您的联系人页面

    <IfModule mod_rewrite.c>
    RewriteEngine On 
    RewriteBase /
    Redirect 301 http://www.youtdomain.com/store http://www.youtdomain.com/contact
    </IfModule>


文章来源: .htaccess 301 redirect of single page