.htaccess 301单页重定向

2020/11/09 02:41 · php ·  · 0评论

重新设计网站后,我需要重定向几个页面。一切都在同一个域中,只有几件事已被重组和/或重命名。它们的形式为:

/contact.php

就是现在:

/contact-us.php

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

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

这通常很好-它可以完成工作-问题是,它还可以重定向:

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

有没有一种方法可以指定我只想重定向root中的contact.php?

RedirectMatch使用与URL路径匹配的正则表达式。而且您的正则表达式/contact.php仅表示包含的所有URL路径,/contact.php而不仅仅是表示确切的URL路径/contact.php因此,请使用锚点作为字符串的开头和结尾(^$)

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

这应该做

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

使用redirectmatch规则毫无意义,然后必须编写链接以使它们完全匹配。如果您不包括在内,则不必排除!只需使用不匹配的重定向,然后正常使用链接

如果想要模板匹配和重定向URL的功能,也可以使用RewriteRule

如果您喜欢使用最简单的解决方案,则RedirectMatch的替代方法是更基本的Redirect指令。

它不使用模式匹配,因此对于其他人来说更加明确和容易理解。

<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。

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

    <IfModule mod_rewrite.c>
    RewriteEngine On 
    RewriteBase /
    Redirect 301 /storepage /contactpage
    </IfModule>
本文地址:http://php.askforanswer.com/htaccess-301danyezhongdingxiang.html
文章标签: ,   ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!