我有一个网站,我们称之为 domain.com,它最初是用 PHP 编写的。每个有效的 URL 在“domain.com/”部分之后的某处都包含字母“php”。
我最近使用 Django 完成了对网站的完全重写,目前位于 beta.domain.com
我想要做的是将旧的 PHP 站点移动到 old.domain.com,并将新的 beta 站点移动到 domain.com。我想做到这一点而不会错过任何一个节拍。我希望所有旧链接都重定向到新的子域。这还包括链接图像(以 .php 结尾)。
我有一个网站,我们称之为 domain.com,它最初是用 PHP 编写的。每个有效的 URL 在“domain.com/”部分之后的某处都包含字母“php”。
我最近使用 Django 完成了对网站的完全重写,目前位于 beta.domain.com
我想要做的是将旧的 PHP 站点移动到 old.domain.com,并将新的 beta 站点移动到 domain.com。我想做到这一点而不会错过任何一个节拍。我希望所有旧链接都重定向到新的子域。这还包括链接图像(以 .php 结尾)。
如果你的旧域写得很好(不使用绝对的、硬编码的 URI 等),你可以很容易地完成这项工作,只需交换 VHosts 的 DocumentRoot
如果没有,那么您可以重复使用 mod_rewrite。这个问题在 SF 上得到了充分的处理(#66285可以作为一个起点)
如果您希望将整个 old.domain.com 站点重定向到 domain.com(新站点),则在 old.domain.com 上使用 .htaccess:
这会将所有请求从 old.domain.com/anything 重定向到新请求(主主页)。
如果您正在寻找一对一的重定向,例如 old.domain.com/directory/file.php -> domain.com/directory/file 那么您需要为此创建 mod_rewrite 规则,假设您使用的是 Apache .
我只是想出了一个非常简单的解决方案。我的解决方案只适用于 Django,但我认为这个概念可以应用于其他 Web 框架。
首先,将所有域定向到 django 应用程序。在 urls.py 的底部,添加以下内容:
然后创建一个名为“redirect”的应用程序,并在 views.py 文件中添加:
这可能不是最有效的方法,但是嗯,它似乎有效。它肯定比乱搞 .htaccess 文件要好,在部署之前似乎无法测试...