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). 如果从任何其他地址请求该站点,网络服务器将重定向到主地址。
这篇文章有帮助吗?
很好!
感谢您的反馈。
抱歉我们没能带来帮助
感谢您的反馈。
反馈已发送
感谢,我们将试着改善此文档。