http - 你如何实现简单的网站重定向?

标签 http redirect dreamhost

如果你去www.codinghorror.com , 它会自动重定向到 www.codinghorror.com/blog

如何重定向到“/blog/”?

我正在使用 Dreamhost Shared Hosting ,所以我配置服务器的选项是有限的。

最佳答案

这将是一个自学 HTTP 状态代码的好机会。阅读 status code definitions section HTTP 1.1规范;第 10.3 节“重定向 3xx”涵盖了与您的问题相关的状态代码。了解 HTTP 3xx 代码意味着您可以发送具有您想要的语义的响应。例如,如果您希望重定向到总是,您可以使用 HTTP 301,“永久移动”。理论上,客户端可以使用 HTTP 301 响应作为信号来存储新 URL 值以代替旧值。

您在 Dreamhost 的配置选项并不像您想象的那么有限,因为您可以在隐藏的 .htaccess 文件中指定许多 Apache 网络服务器配置指令。这个文件应该放在一个web文档目录下;使用您的示例,您可以将其放置在根 Web 文档目录 /home/midas/codinghorror/ 中,尽管 .htaccess 文件可以放置在 Apache 提供的任何目录中。 (记住在文件名中包含前导点。)其内容可以是 mod_alias 示例或已经提到的 mod_rewrite 示例。

请注意,mod_alias 的 RedirectPermanent 指令将为您发送一个 HTTP 301 状态代码。如果您想使用 mod_rewrite 来执行此操作,您可以指定状态代码:

RewriteEngine on
RewriteRule ^$ /blog/ [R=301]

如果您在没有代码的情况下使用 [R],则会使用 HTTP 302(“临时移动”)。

由于 PHP 也可供您使用,这也是一个选项,尽管使用 .htaccess 的上述选项可能更快。您可以在 /home/midas/codinghorror/ 中放置一个名为 index.php 的文件,并使用上面 Jeremy Ruten 给出的代码。同样,您可以在 header() 的第三个参数中指定状态代码:

<?php
header('Location: http://www.codinghorror.com/blog', TRUE, 301);
?>

否则,将 PHP 的 header() 函数与“位置”一起使用默认发送 HTTP 302 状态响应。

关于http - 你如何实现简单的网站重定向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/694280/

相关文章:

http - 如何以简单、无痛的方式提供 lua 页面/脚本?

PHP这是header定位的最佳实践

http - 有什么办法可以通过 cURL 获得这种行为吗?

http - Asp.net Core RC2 如何禁用传输编码 : chunked on response

http - 我应该使用哪种 HTTP 重定向方法?

asp.net - 如何在 ASP.NET 4.0 中进行 301 重定向?

php - 正在执行 MySQL 计划?

cron - 设置 Dreamhost Cron 作业以简单执行 URL

ruby - 如何在 Dreamhost Rails 3.0.4 上部署测试应用程序?

php - 访问控制允许来源 angularjs 到 php