最好不要在WordPress中使用这些子域重定向规则:
当您使用错误的域名或子域访问WordPress时,WordPress可能无法正确加载,因为典型的WordPress安装设置为针对特定域或子域运行。
即使你能做到这一点,在每次重定向之前,WordPress都会先加载自己,然后再进行重定向,再在重定向URL到达服务器时再次加载。这是一个缓慢的过程。
改为在.htaccess
. 如下所示:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# custom rules for subdomain matching
RewriteCond %{HTTP_HOST} ^([^.]+)\\.example\\.com$ [NC]
RewriteRule . http://example.com/%1 [R=301,L]
# default WordPress rules
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
这将重定向所有
sub.example.com
到
example.com/sub
.
Note: 上述代码也将重定向www.example.com
到example.com/www
. 如果您不希望这样,请修改以上内容# custom rules for subdomain matching
以下章节:
# to redirect www.example.com/* to example.com/*
RewriteCond %{HTTP_HOST} ^www\\.example\\.com$ [NC]
RewriteRule ^(.*)$ "http://example.com/$1" [R=301,L]
# custom rules for subdomain matching
RewriteCond %{HTTP_HOST} ^([^.]+)\\.example\\.com$ [NC]
RewriteRule . http://example.com/%1 [R=301,L]
阅读
this doc. 了解有关apache的更多信息
mod_rewrite
.
另外,确保mod_rewrite
is enabled for .htaccess
在服务器中。