将子域定向到主域,并使用.htaccess保持子域格式

时间:2019-10-28 作者:Lisa

我正在使用bluehost和一个单站点wordpress站点。

我想当有人输入bob时。实例com来显示示例中的Wordpress站点。com,但仍使用子域地址(bob.example.com)。我在Wordpress中有一块PHP,它可以识别子域并根据子域提供联系信息。

我已尝试在中使用此重写规则。htaccess文件,虽然我觉得离它更近了一步,但它只是给出了新的错误:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.*)\\.example\\.com$
RewriteRule ^(.*)$ http://example.com [P]
通过bluehost使用通配符重定向时Bad Request 在尝试查找errordocument时,还有400个错误请求错误

如果不使用通配符重定向,浏览器似乎无法使用。在我的示例中是htaccess文件。com目录。

我需要在我的。htaccess文件以使其按我所希望的方式工作?

1 个回复
SO网友:MrWhite

您不需要在.htaccess. 假设您的子域指向文件系统上与主域相同的位置,那么您需要配置WP以接受对两个主机名的请求(以防止规范重定向-我假设您正经历这种情况?)。

换句话说,不是用WordPress硬编码域名(WP_SITEURLWP_HOME), 您需要根据请求的主机名使其成为动态的。

例如,在wp-config.php 设置以下内容:

define(\'WP_SITEURL\',\'https://\'.$_SERVER[\'HTTP_HOST\']);
define(\'WP_HOME\',\'https://\'.$_SERVER[\'HTTP_HOST\']);
<小时>
RewriteCond %{HTTP_HOST} ^(.*)\\.example\\.com$
RewriteRule ^(.*)$ http://example.com [P]
这是试图将请求从子域“代理”到主域-使用服务器作为反向代理。这需要访问服务器配置才能进行配置(正确)。