apache 2.4中的htaccess重定向301不起作用

Posted

技术标签:

【中文标题】apache 2.4中的htaccess重定向301不起作用【英文标题】:htaccess redirection 301 in apache 2.4 not working 【发布时间】:2019-04-04 07:32:42 【问题描述】:

如何将目录http://www.example.com/contact/重定向到文件http://www.example.com/contact-us.php

我的 htaccess 文件内容

RewriteEngine On 
RewriteCond %HTTP_HOST !^www\.
RewriteRule ^(.*)$ http://www.%HTTP_HOST/$1 [R=301,L]
RewriteRule ^/contact/$ http://www.example.com/contact-us.php [L,R=301]

【问题讨论】:

【参考方案1】:

重写规则 ^/contact/$ http://www.example.com/contact-us.php [L,R=301]

^/ 在 htaccess 的 RewriteRule 中永远不会匹配。如果这是在文档根目录中,请删除第一个 /

当在 .htaccess 中使用 mod_rewrite 时,将您带到该 htaccess 文件的 URL 路径已被剥离,您只匹配相对/剩余路径。

【讨论】:

以上是关于apache 2.4中的htaccess重定向301不起作用的主要内容,如果未能解决你的问题,请参考以下文章

apache_conf 通过htaccess将http重定向到apache中的https

apache_conf 忽略htaccess重定向中的本地开发域

.htaccess 中的 apache HTTP:X-Forwarded-Proto 导致开发环境中的重定向循环

Apache 2.4 将 https 重定向到另一个端口

.htaccess 错误文档重定向

apache使用.htaccess文件中RewriteRule重定向后,URL中的加号无法解析