网站总是在变化。 您可以添加和删除内容、更改域、重组等。 如果您希望您的网站在所有这些更改中表现良好,您需要知道如何处理重定向。
在服务器配置级别执行此操作的一种方法是在an中创建重定向规则。htaccess文件。
什么是安。htaccess文件?
在Apache服务器上,。htaccess文件使您能够进行配置更改,即使您无权访问主服务器配置文件。
.htaccess文件在单个目录的基础上运行。 如果您需要创建仅适用于该特定目录及其所有子目录的规则,这将非常有用。 这也可以帮助您避免编辑服务器的主要配置文件。
.htaccess使用与根配置相同的语法,这意味着您通常添加到服务器配置文件中的任何指令都可以在这里使用。
然而,Apache的官方文档建议您只使用。htaccess文件在绝对必要时,因为它们有时会降低服务器的性能。 因此,如果它对您的网站有意义,请考虑使用其他重定向方法,例如服务器的主配置文件,JavaScript,PHP或HTML。
还有可用的插件,如Wordpress上的重定向,这允许您重定向页面,而不需要太多关于该主题的知识。
使能。服务器上的htaccess
如果。htaccess尚未在您的服务器上启用,您需要启用它。 您需要拥有sudo或root权限才能执行此操作。 如果您没有root权限,请寻求有root权限的人的帮助。
首先,打开您网站的http配置文件。 然后,在VirtualHost()块之后,添加以下内容:
选项索引跟随链接
AllowOverride所有
要求所有授予
接下来,保存并重新启动Apache。
一些CMS系统,如,WordPress或Drupal,自动创建。htaccess文件。 如果您没有,可以使用文本编辑器手动创建它。 保存为"。htaccess"没有其他文件扩展名,然后将其添加到根目录中的站点public_html文件夹中。
专业提示:在对配置文件进行任何更改之前(无论是根配置还是。htaccess)永远如此保存备份。 错误可能导致HTTP500内部服务器错误。 使用最近的备份文件,如果您犯了错误,您将能够快速反转更改。
使用"重定向"指令。htaccess的
使用重定向指令。htaccess是相当简单的,一旦你理解语法。
下面,我们将使用一个简单的指令来分解它,该指令将单个页面重定向到同一域上的另一个页面:

首先,以绿色突出显示,是指令的名称。 在这种情况下,我们使用重定向。 一切都在。htaccess区分大小写,因此请确保将R大写。
其次,以蓝色突出显示,是您要使用的HTTP状态代码。 此示例使用301表示永久重定向。 您可以将其更改为最合适的状态代码。 如果您不包括一个,系统将自动假定重定向是临时的,并使用302状态代码。
第三,黄色,是您将访问者重定向离开的原始位置。 位置开头的正斜杠表示您的整个当前域。 下面的所有内容都告诉您要重定向的页面所在的位置。 在此示例中,我们将页面放在子文件夹中。
如果您要重定向整个域,而不是单个子文件夹,则只需要使用正斜杠引用它。
最后,紫色是目标页面的位置,或者您发送访问者的目的地。 在此示例中,原始页和目标页都位于当前域中,因此目标路径以正斜杠开头。 如果您要重定向到单独域上的页面,则需要包含整个url。
此指令可以以许多不同的方式进行调整,具体取决于您需要重定向的内容。 下面的图表包括7个常见的重定向以及如何编写它们。
重定向规则 | 怎么写呢 |
在同一域上的页面之间重定向: | 重定向301/子文件夹/old_page。html/子文件夹/new_page。html格式 |
将一个页面重定向到另一个域上的另一个页面: | 重定向301/子文件夹/old_page。html格式https://www.exampleurl.com/subfolder/new_page.html |
在同一域上的子文件夹之间重定向: | 重定向301/old_subfolder/new_subfolder |
将一个子文件夹重定向到外部位置: | 重定向301/子文件夹https://www.exampleurl.com/ |
将域重定向到同一域上的子文件夹: | 重定向302/子文件夹 |
域之间重定向: | 重定向301/https://www.exampleurl.com |
重定向到自定义404页面: | 错误文档404/错误/pagenotfound。htm的 |
注:自定义404页面重定向使用不同的指令名称,但它们的格式与此图表上的其他重定向规则相同。 如果您正在使用此功能,请确保您已经创建了错误页面。
通过重写模块重定向到HTTPS
一些更复杂的重定向使用重写模块(也称为mod_rewrite)而不是上面解释的重定向指令。 Rewrite模块允许您在指定条件下操作和重写URL请求。
例如,如果您希望用于访问网站的所有Url自动更改为HTTPS,则需要使用此方法。
首先,您需要通过声明以下语句来启用RewriteEngine:
RewriteEngine上
您只需要为每个文档执行一次此操作,即使您正在创建多个规则。
启用RewriteEngine后,您可以使用此代码重写所有URL请求以使用HTTPS:
重写%{https}关闭
RewriteRule^(。*)$https://www.ExampleURL.com/÷1[R=301,L]
第一行检查HTTPS是否已包含在当前URL中。 在此声明中,"off"表示如果地址不包含HTTPS,则新规则将适用。
第二行创建规则。 当条件满足时(即HTTPS不包含在URL中时),URL将相应地重写。
最后,[R=301,L]意味着这是一个HTTP301,或永久重定向。 L表示这是集合中的最后一个规则,运行它后,服务器应该返回一个结果。
使用网站审核检查重定向
维护一个网站是一项复杂的工作,需要注意细节,而且很容易犯错误。 通过定期审核您的网站,确保您的网站保持健康。
站点审核可以为您自动执行此操作,检查错误,提供建议,甚至帮助您确定最重要的修复程序的优先级。 它可以检查您的重定向问题,如:
- 规范链接
- 损坏的链接
- HTTPS
- 临时重定向
- 永久重定向
通过创建有效的重定向,并严格检查您的工作,您可以创建一个网站,为您的当前用户和自然搜索表现良好。