将所有子域重定向到根域

时间:2017-02-27 作者:user105919

我使用WordPress,希望将所有不存在的子域(或所有子域)重定向到主域。

Examples of urls to be redirected:

  • subdomains.example.com
  • subdomains.example.com/xxx
  • subdomains.example.com/xxx.html
  • subdomains.example.com/t/xxx.php

TO

www.example.com

这是我的默认WordPress.htaccces 主域的(我正在编辑此)。不存在子域的任何文件夹或文件都不存在。

# BEGIN WordPress

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>

# END WordPress

1 个回复
SO网友:Fayaz

以下内容.htaccess 仅当subdomain 在DNS设置中使用单个DNS记录或通配符DNS记录分配。如果您的DNS设置没有该记录,对您的子域的请求将无法到达您的服务器。所以.htaccess 不起作用。

如果您不知道如何编辑DNS记录,请咨询您的web托管提供商。然后使用以下命令.htaccess 代码:

# BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    # the following three lines will work for all subdomains
    RewriteCond %{HTTP_HOST} !^example\\.com$ [NC]
    RewriteCond %{HTTP_HOST} !^www\\.example\\.com$ [NC]
    RewriteRule . "http://www.example.com/" [R=301,L]

    # the following two lines will redirect non-www to www version of the domain
    RewriteCond %{HTTP_HOST} ^example\\.com$
    RewriteRule ^(.*)$ "http://www.example.com/$1" [R=301,L]

    RewriteRule ^index\\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
# END WordPress

相关推荐

如何在我的根域上组合WordPress htaccess+在子文件夹上组合php

我为一个看似重复的问题道歉,但我所看到的几十个问题中,没有一个是同样的问题。我有以下目录结构:/.htaccess /index.php /subfolder/.htaccess /subfolder/index.php 我希望所有页面请求都由/index.php, 除非请求启动/subfolder 在这种情况下,应由/subfolder/index.php.e、 g。/abc 将重写为/subfolder/abce、 g。/subfolder/def 将重写为/subf