我在网上查看了各种解决方案,但一无所获。我无法向网络主机寻求帮助,因为这不是我的托管帐户;我正在为客户设置它。我的客户通过一些域名注册商拥有一个域名,并通过 iPower 进行网络托管。为了举例说明,假设他们的域名是domain.com
。我想以透明的方式指向sub.domain.com
(domain.com/sub
这样访问者输入时sub.domain.com
,他们的地址栏将继续显示该域名,而不会明显切换到domain.com/sub
)。
工具一不要有:
- 访问 httpd.conf
- SSH 访问托管服务器
- 联系 iPower 支持的能力,因为我无权访问他们在提交支持单时要求我提供的信息(账单和安全问题)
工具一做有:
- 间接访问域名注册商的控制面板(我向管理员发送了一封电子邮件,他根据我的意愿进行了更改,但他不了解网络或 DNS 等任何东西)
- 访问 iPower 托管控制面板
- 访问 .htaccess 文件
- FTP 访问 iPower public_html 目录及其所有子目录
域名注册商的控制面板提供了设置 CNAME、MX 记录、A 记录等的常用功能。iPower 托管控制面板在其域名控制面板中也具有该域名的一种“幽灵”,尽管它告诉我该域名是在其他地方注册的,但它允许我输入 DNS 记录和子域名等内容。
到目前为止,我已经在注册商处设置了域名,并设置了指向服务器 IP 地址的 A 记录。我尝试在 iPower 端设置类似的 A 记录,但无济于事。子域名和 CNAME 也是如此。它只会直接向sub.domain.com
public_html 文件夹中的文件发送请求(与 中显示的内容相同)domain.com
。我尝试了提供的 mod_rewrite 规则这里,但似乎没有效果。我还尝试了提供的 mod_rewrite 规则这里,但是当我尝试的时候它给我带来了 500 服务器错误(我确定我修改错了,但我不知道我错在哪里)。当我有相应的 A 记录时和在 iPower 域控制面板中配置子域时,它不会将访问者引导到根站点,而是显示一个页面,上面写着“目录没有索引文件。禁止浏览没有索引文件的此站点或目录。”即使有是该文件夹中有一个索引文件。很多该文件夹(Drupal 安装)中的文件,domain.com/sub
直接访问即可生成工作网站。
那么。说了这么多,有人能给我提供一些简单的指导吗?请记住,我只能访问 .htaccess 文件和域控制面板,但无法访问 Apache .conf 文件,所以我无法执行任何类似 ServerAlias 的操作。
我知道这不应该这么复杂,但是我尝试过的任何适用于我的情况的说明或文章都没有帮助。
遇到这个问题让我有点尴尬,因为我已经有自己的网站托管了好几年,拥有多个域名和子域名——但我已经被 cPanel 的做事方式宠坏了,我的域名和文件都托管和管理在同一个地方。我可以用几种不同的语言编写代码,我可以修复坏掉的电脑和其他技术,但我不知道如何配置网络服务器。真沮丧。
提前感谢你的帮助和建议。我经常通过在这个问答网站网络上搜索和潜伏来找到我需要的答案,但在这种情况下,我显然错过了一些东西。
答案1
1) 仅需注意。您无法在没有注册商帮助的情况下设置 sub.domain.com,除非 domain.com 正在运行您自己的 DNS 服务器。不过,据我所知,这已经完成了。
2)现有 Apache httpd.conf 中必须包含的内容,否则您就倒霉了:
a) RewriteEngine 已启用。b) Apache 接受对 sub.domain.com 的请求
如果这两件事都没问题,那么我想你应该能够像这样通过 .htaccess 进行重写:
RewriteEngine On
RewriteCond %{HTTP_HOST} domain.com [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/sub(.*) http://sub.domain.com/$1 [R=301,L]
详细信息可能有所不同,具体取决于您的底层网页为站点 URL 配置的内容以及您是否要使用单个子域或更多子域等。