使用htaccess重定向主页,除非我输入添加“/home”的链接

时间:2021-05-25 作者:Jorge Consiglio

我正在尝试做一些具体的事情,这可能有点复杂,我不知道怎么做。

这就是我对htaccess的了解:

RewriteOptions inherit
RewriteCond %{HTTP_HOST} ^homepageA\\.ar$ [OR]
RewriteCond %{HTTP_HOST} ^www\\.homepageA\\.ar$
RewriteRule ^/?$ "https\\:\\/\\/homepageB\\.ar\\/" [R=301,L]
-用户输入主页a->;自动重定向用户主页b

主页B包括一个;主页“;指向homepageA的菜单按钮,因此触摸该按钮当然会再次重定向到homepageB。但我需要避免这种情况。我需要homepageB上的用户可以访问;“旧”;homepageA没有重定向到新的homepageB。

有没有办法做到这一点?或者在链接上附加一些内容以避免htaccess重定向(这样我就可以相应地修改“主页”按钮链接)?

提前感谢!

1 个回复
最合适的回答,由SO网友:MrWhite 整理而成

一种快速的方法可能是简单地将查询字符串附加到URL,以防止重定向(例如。?noredirect) - 仅附加查询字符串不应阻止显示旧的homepageA。

您可能想阻止?noredirect URL。这可以通过发送X-Robots-Tag: noindex HTTP响应标头。

但是,任何键入此URL的用户(例如。?noredirect) 将能够访问旧的homepageA,无论他们是否先访问过homepageB。

例如:

# Redirect homePageA to homepageB, when the query string is not "noredirect"
RewriteCond %{QUERY_STRING} !^noredirect$
RewriteCond %{HTTP_HOST} ^(www\\.)?homepageA\\.ar
RewriteRule ^$ https://homepageB.ar/ [R=301,L]

# Send the X-Robots-Tag noindex header when query string is "noredirect"
RewriteCond %{QUERY_STRING} ^noredirect$
RewriteRule ^ - [E=NOINDEX:1]
Header set X-Robots-Tag "noindex" env=REDIRECT_NOINDEX
没有必要在RewriteRule 替换字符串。以及RewriteRule 图案^$ 与相同^/?$ 在中使用时.htaccess.

假设您在Apache上,并且正在内部重写对WordPress前端控制器(标准WP)的请求.htaccess 指令),然后您需要检查REDIRECT_NOINDEXHeader 指令,尽管设置了NOINDEX 前面的环境变量RewriteRule 指令。(重写引擎触发“循环”,并NOINDEX 环境变量重命名为REDIRECT_NOINDEX.)

您需要在测试之前清除浏览器缓存,最好先使用302(临时)重定向进行测试,然后再将其设置为301(永久)重定向。

相关推荐

奇怪的行为:通过访问固定链接设置页面修复了随机的HTTP错误500(语言代码的htaccess问题)

我的网站上有一个非常奇怪的行为,我想解决这个问题。有时(没有可识别的模式),我的网站在头版或一些管理页面上显示一个500错误。当这500个错误出现在头版上时,管理页面仍然可用。我偶然发现了一个解决这个问题的方法:去Permalinks settings page (/wp-admin/options-permalink.php) without submitting anything! 只需转到此页面即可解决此错误。我注意到了options-permalink.php 正在调用此url:https://p