设置重定向

修改于 星期六, 11 五月 在 6:52 PM

GENERAL INFORMATION

一般信息

重定向(redirect)是根据给定的规则将站点用户重定向到另一个URL。 它既可以在一个 Web 资源内(从一个页面到另一个页面)进行设置,也可以在另一个站点上进行设置。

最常使用重定向:

  • 从一个域移动到另一个域时;

  • 将一个网站的部分内容转移到另一个网站时;

  • 连接 SSL 证书后(将用户从 http:// 重定向到 https://);

  • 将数据从子域传输到域时,反之亦然;

  • 将访问者从 www 重定向到非 www,反之亦然;

  • 以防止域欺骗。

可以通过四种方式配置重定向(例如,从一个域到另一个域):通过 .htaccess 文件、PHP、HTML 和 JavaScript。 .htaccess 的规则对于任何使用 Apache Web 服务器的托管都是通用的。 如果重定向不起作用,则表示托管服务器配置不正确。

设置域重定向的每条规则都写入位于站点根目录中的 .htaccess 文件的开头。

重定向至 WWW

当站点需要转换为 www 的地址时使用它(以前是 http://test.ru,将是 http://www.test.ru):

RewriteEngine On RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^(.*)$ %{REQUEST_SCHEME}://www.%{HTTP_HOST}/$1 [R=301,L]

从 WWW 重定向到无 WWW

用于将用户从 www 子域重定向到不带 www 的地址(以前是 http://www.test.ru,将是 http://test.ru):

RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ %{REQUEST_SCHEME}://%1/$1 [R=301,L]

从 HTTP 重定向到 HTTPS

安装 SSL 证书后使用,将所有用户重定向到安全的 https:// 连接。

RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

从 HTTPS 重定向到 HTTP

这些规则用于必须通过 http:// 不通过安全连接访问站点的情况(值得注意的是,如果没有安装 SSL 证书,它将无法工作)。

RewriteEngine On RewriteCond %{HTTPS} on RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

重定向到另一个域

从一个域转移到另一个域时会使用重定向(将 http://newtest.ru 替换为新站点地址):

RewriteEngine On RewriteRule ^(.*)$ %{REQUEST_SCHEME}://new.ru/$1 [R=301,L]

从一页渲染到另一页

重定向既可以在一个站点内使用,也可以将页面从一个站点重定向到另一个站点。

Redirect 301 /stranica https://test.ru/stranica/    Redirect 301 /category/stranica https://test.ru/stranica/   

该规则适用于任意数量的页面(每个页面另起一行),并写入源站点的 .htaccess 中,无需指定域名。

 

仅通过主地址打开域

碰巧许多域都定向到一个站点(有时这是有意的,例如,在域合并的情况下,有时攻击者通过将域定向到某人的服务器来实现这一点)。 为了确保站点仅在主地址打开,您可以使用以下规则:

RewriteEngine On RewriteCond %{HTTP_HOST} !^test.ru$ [NC] RewriteRule ^(.*)$ %{REQUEST_SCHEME}://test.ru/$1 [R=301,L]

该规则被写入主域的 .htaccess 文件中(在我们的示例中为 http://test.ru). 如果从任何其他地址请求该站点,网络服务器将重定向到主地址。

这篇文章有帮助吗?

很好!

感谢您的反馈。

抱歉我们没能带来帮助

感谢您的反馈。

告诉我们可以如何改善此文档!

选择至少一个原因
需要进行 CAPTCHA 验证

反馈已发送

感谢,我们将试着改善此文档。