仅使用 mod_rewrite 重定向主页

Posted

技术标签:

【中文标题】仅使用 mod_rewrite 重定向主页【英文标题】:Using mod_rewrite to redirect home page ONLY 【发布时间】:2015-07-14 08:02:06 【问题描述】:

我有一个需要重定向的网站,但我不能只重定向 / 目录,因为服务器上的文件夹中还有其他网站,这样做也会重定向它们。不好!

所以我有我的 .htaccess 文件,其中包含用于单个 html 页面的一堆 301 重定向,并且这些工作正常。但我需要重定向主页。这是我必须做的:

RewriteEngine on
RewriteBase /
RewriteCond %HTTP_HOST ^recherchegoldens.com [NC]
RewriteRule ^(.*)$ http://whitegoldenretriever.com/$1 [R=301,L]

转发主页,太好了。但它也搞乱了我的其他 301 重定向。这是我的重定向之一:

Redirect 301 /Available-Pups.html http://www.whitegoldenretriever.com/available-pups/

但是使用上面的重写规则,如果我输入 recherchgoldens.com/Available-Pups.html,它只会转发到 whitegoldenretriever.com/Available-Pups.html

但我不希望那样。我希望它仍然转发到我在 Redirect 301 指令中设置的位置。

我做错了什么?

【问题讨论】:

【参考方案1】:

仅重定向主页使用:

RewriteCond %HTTP_HOST ^recherchegoldens\.com$ [NC]
RewriteRule ^/?$ http://whitegoldenretriever.com/ [R=301,L]

请务必在新浏览器中进行测试以避免旧浏览器缓存。

【讨论】:

以上是关于仅使用 mod_rewrite 重定向主页的主要内容,如果未能解决你的问题,请参考以下文章

mod_rewrite:重写规则还是重定向?

使用 mod_rewrite 重定向查询字符串(反之亦然)

mod_rewrite:如何重定向 HTTP DELETE 和 PUT

使用 Mod_rewrite 将 HTTP 重定向到 HTTPS

如何使用基于 404 错误的 mod_rewrite 重定向到自定义错误页面

为啥在通过 mod_rewrite 强制 HTTPS 时不发送 301 重定向?