php - 尝试指向新域时出现问题
问题描述
我有 2 个面板。两者都有一个域和一个服务器。两边的代码文件和数据库是一样的。我被告知将旧域指向新域。
我在索引文件和旧服务器中不受密码保护的所有公共文件中编写了以下代码。
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.New-Website.com");
?>
到目前为止一切正常。
问题详情
我在旧服务器中重命名了索引文件,因为它没有密码保护,然后尝试访问重命名的文件。
由于在旧域中找不到该文件,我收到了 Access Forbidden 错误。
您能否建议即使在我停止使用旧 cpanel 中的服务后,旧域是否可以指向新域?
解决方案
选项 1 使用 cPanel
cPanel 有一个名为“Assign Domain”的界面,它有 4 个步骤
(请注意,根据您的主机,您的 cPanel 风格可能与此不同,但步骤应该几乎相同)
第 1 步(输入域):
在这里,cPanel 将尝试解析您输入的域 (olddomain.com) 并检测它的当前 DNS 服务器
第 2 步(验证所有权):
在这里,您将验证您对 (olddomain.com) 的所有权。
cPanel 检测到 olddomain.com 当前由 NS1.SMARTNAME.COM 解析。
我使用 DNS 方法完全离开我的旧服务器,完全没有流量到旧服务器。如果您在 godaddy 这样的公司注册了您的域并且您的服务器和主机在另一家公司上,这也很方便。
第 3 步(选择 Addon 与 Parked):
在这里,您将为您的案例选择停放域
第 4 步(选择插件目录和子域):
此步骤仅适用于您选择新 adddomain 的 public_directory 和子域的插件域
选项 2 使用 1 个前端控制器 PHP 文件并重写规则(感谢 @tim 的评论)
在你的 httpd.conf 文件中添加一个重写规则,将每个请求发送到你的 frontController PHP 文件
RewriteEngine On
RewriteCond "%{REQUEST_URI}" "!=/frontController.SE.php"
RewriteRule .* /frontController.SE.php [L]
并创建一个名为的新 PHP 文件frontController.SE.php
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.New-Website.com");
exit;
?>
这比在所有公共文件中处理相同的代码要好
推荐阅读
- angular - 在任何扩展的 angularjs 上显示图像 base64
- python - 在通过成对距离进行的python层次聚类中,我如何削减特定距离并获取集群和每个集群的成员列表?
- arm - 如何知道 IRQ 是否立即在 ARM Cortex M0+(或任何其他 MCU)上提供服务
- java - Spring 中使用的 XML Schema URL 是从什么时候开始仅支持 TLS1.2 的?
- java - Jakarta Dsn - 引起:java.lang.ClassNotFoundException:jakarta.activation.DataContentHandler
- html - Noob css - 无法使链接转到右上角
- mysql - 使用命令行更改另一个mysql用户的密码
- c# - .net Core - 添加过滤器时忽略响应类型
- javascript - vue-js axios 处理 302 重定向
- c# - 使用 Ocelot 和微服务进行身份验证