【问题标题】:Using wildcard subdomain on specific directory在特定目录上使用通配符子域
【发布时间】:2013-10-26 06:57:02
【问题描述】:

我正在设置现有的 wordpress 安装以使用多站点。我已经成功设置了网络,因为它是现有的安装,它使用子域(无论如何我都想要)。

我在我的网络上创建了一个新站点/子域,所以它看起来像这个 example.domain.com

我遇到的问题是在我的托管服务提供商 BlueHost 上设置通配符子域。

我托管多个域,所以当我设置通配符时,它总是指向根或原始 IP 地址。

我需要它指向根目录的特定目录,以便它使用正确的 wordpress 安装。根/特定目录

有没有办法做到这一点?我对 a 和 cname 问题不太熟悉。如果有办法通过在 htaccess 中编写来实现它,那也可以。

【问题讨论】:

    标签: .htaccess wordpress wildcard-subdomain


    【解决方案1】:

    我托管多个域,所以当我设置通配符时,它总是指向根目录

    我假设您的意思是您获得的example.domain.com 的内容与访问www.domain.com 的内容相同。这肯定可以通过htaccess重写规则来处理。

    如果要在 ${DOCUMENT_ROOT}/subsite 目录之外提供名为 subsite 的子域,则将以下规则添加到您的 .htaccess 放置在您的 Web 根目录 / 目录中:

    RewriteEngine on
    RewriteBase /
    
    RewriteCond %{HTTP_HOST} ^subsite\.domain\.com$ [NC]
    RewriteCond %{REQUEST_URI} !^/subsite [NC]
    RewriteRule ^(.*)$ /subsite/$1 [L]
    

    如果有多个多站点子域需要重定向,请改用以下动态规则:

    RewriteEngine on
    RewriteBase /
    
    RewriteCond %{HTTP_HOST} ^(?!www\.)([^.]+)\.domain\.com$ [NC]
    RewriteCond %{REQUEST_URI}::%1 !^/([^/]+).*?::\1
    RewriteRule ^(.*)$ /%1/$1 [L]
    

    您还需要将 ServerAlias *.domain.com 添加到 Apache 的 httpd.conf 文件中的 <VirtualHost> 配置中。


    似乎 BlueHost 不接受任何直接为您修改 httpd.conf 的请求。但是,它们确实提供了一种从控制面板设置通配符子域的方法。

    看看How to Set Up a WordPress MultiSite in Bluehost。最后一部分通过屏幕截图概述了该过程。您还需要为子域启用每个站点的主题。

    【讨论】:

    • 我是创建通配符子域 a 还是 cname 记录?当我创建一个名称记录时,它指向根,所以我假设这是我需要让你的重写规则起作用?
    • ACNAME 都应该工作。您还需要将 ServerAlias *.domain.com 添加到 Apache 的 <VirtualHost> 配置中。
    • 我正在使用 BlueHost,这是它为此类主题提供的支持:我们不支持虚拟目录(传统意义上的)。这些是使用 Apache 的 httpd.conf 文件中的 VirtualHost 容器设置的。我们不支持任何客户修改 httpd.conf 的请求。因此,这在我们的服务器上是不可能的。但是,您可以使用 mod_rewrite 模拟“虚拟目录”构建,以将输入重写到另一个位置的脚本。有关如何使用它的更多提示,请参阅 mod_rewrite 教程。
    • 在 BlueHost 上,您可以从控制面板执行此操作。看看How to Set Up a WordPress MultiSite in Bluehost。最后一部分通过屏幕截图概述了该过程。
    • 好的,所以目前我没有使用重定向,因为它似乎不需要。我最后遵循了这些步骤。现在,当我打开ksu.zoofrog.com 时,它只是一个空白页。我已禁用所有插件以查看它是否导致冲突,但结果仍然相同。尽管zoofrog.com,原来的网站仍然有效
    【解决方案2】:

    1- 您可以将子域添加为插件域,并且它可以根据需要具有单独的子目录。
    2-实现此目的的另一种方法是为 subdomians 使用另一个主机。在第二台主机上设置子域并将子域从主主机指向辅助主机上的子域。

    【讨论】:

      猜你喜欢
      • 2012-11-28
      • 1970-01-01
      • 2020-07-23
      • 2011-08-15
      • 1970-01-01
      • 1970-01-01
      • 2020-12-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多