Php .htaccess 301单页重定向
在重新设计网站后,我有几个页面需要重定向。所有内容都在同一个域中,只有一些内容被重新组织和/或重命名。它们的形式如下: /contact.php 现在是: /contact-us.php 使用.htaccess文件,我添加了这一行,这是我最推荐的一行:Php .htaccess 301单页重定向,php,.htaccess,seo,http-status-code-301,Php,.htaccess,Seo,Http Status Code 301,在重新设计网站后,我有几个页面需要重定向。所有内容都在同一个域中,只有一些内容被重新组织和/或重命名。它们的形式如下: /contact.php 现在是: /contact-us.php 使用.htaccess文件,我添加了这一行,这是我最推荐的一行: RedirectMatch 301 /contact.php /contact-us.php 这基本上是好的-它完成了任务-问题是,它还重定向: /team1/contact.php /不存在的文件夹/contact.php 有没有办法指定
RedirectMatch 301 /contact.php /contact-us.php
这基本上是好的-它完成了任务-问题是,它还重定向:
- /team1/contact.php
- /不存在的文件夹/contact.php
RedirectPermanent /contact.php /contact-us.php
如果希望模板匹配和重定向URL,也可以使用。使用与URL路径匹配的正则表达式。您的正则表达式/contact.php
仅表示包含/contact.php
的任何URL路径,而不只是确切地表示/contact.php
的任何URL路径。因此,将锚定用于字符串的开头和结尾(^
和$)
:
如果您更喜欢使用来解决问题,另一种选择是更基本的指令
它不使用模式匹配,因此更明确,更容易让其他人理解
i、 e
#将旧联系人页面重新指向新联系人页面:
重定向301/contact.phphttp://example.com/contact-us.php
查询字符串应该结转,因为单据上说:
将显示匹配URL路径之外的其他路径信息
附加到目标URL
使用redirectmatch规则,然后必须编写链接以使它们完全匹配是没有意义的。如果不包括,就不必排除!只需使用不匹配的重定向,然后正常使用链接它会将您的商店页面重定向到您的联系人页面
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
Redirect 301 /storepage /contactpage
</IfModule>
重新启动发动机
重写基/
重定向301/storepage/contactpage
我不明白为什么这样可以解决问题RedirectPermanent…
与Redirect301…
相同。Gumbo,RedirectPermanent将(URL路径)作为参数,RedirectMatch将(Regex URL)作为参数,因此当您使用不带(^)的RedirectMatch来分隔行的开头时,它不起作用。使用RedirectPermanent也比正则表达式快得多。@duckyflip:啊,对不起,你说得对。误读重定向匹配
,仅使用重定向
。但是Redirect
只执行前缀检查。当我使用类似www.domain.com/contact.php?location=12的东西执行此操作时,它会重定向到www.domain.com/home/mike/public\u html/contact us.php?location=12,但仅当其中包含参数时。我通过在目标端输入完整的URL(带有http://)来修复它,因此:“重定向匹配301^/contact\.php$“。您可以使用任何url,而不是/contact-us.php
。我需要重定向到一个IP地址嘿,太棒了,但我想做一些类似的事情,但我希望当有人试图从我的主机进入一个私有部分,然后重定向到另一个页面,如>private.php login.php,但在我用这个命令隐藏我的文件之前,需要所有拒绝,那么怎么做呢?只是一个说明,这只区分大小写,不区分大小写。。。我想,但是很久以前问过……简单更好。如果您不需要模式(regex),那么这将是最有效的语法。
<IfModule mod_alias.c>
#Repoint old contact page to new contact page:
Redirect 301 /contact.php http://example.com/contact-us.php
</IfModule>
redirect 301 /contact.php /contact-us.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
Redirect 301 /storepage /contactpage
</IfModule>