主页 >> 程序猿的东西 >> wordpress同时使用子域名和子目录

wordpress同时使用子域名和子目录

因为想在域名下开设一个公共博客功能,也就是类似于blog.abc.com/ada  blog.abc.com/bob……之类的,这需要同时设置子域名和子目录,于是经过一番探索,终于发现了如下方法。

开启多站以后创建新站点,再编辑这个站点的时候可以看到wordpress是允许你同时设置域名和子目录的,但是设置以后能否正常访问就不一定了,⊙﹏⊙b汗。

我开启了子域名模式,设置一个子域名站点blog,又设置目录czj,打开一看可以访问,只是静态文件全部404,这不是坑爹吗???

这个其实是由于它的路由重写规则导致的,打开.htaccess,同时上wordpress官网找到子目录的重写规则( wordpress多站设置 )找到子目录的重写规则,然后对比两边,求同存异,合并一下,就可以啦~~~

下面是我最终的设置.htaccess ,目前看起来没有什么异常

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# 上传文件
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]

# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule  ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule  ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
# END WordPress

再谈一点小小的插曲。

我第一次设置是希望通过子目录方式,然后用domain mapping插件设置域名,后来发现这个插件主要是设置不同主域名的,所以子域名用wordpress自带的设置就完全可以搞定了。

后来发现一个讨厌的问题是主站被自动加了一个/blog目录,一直不解何故,后来才知道是因为设置了子目录多站以后自动加的,后来改成子域名模式就ok了。

发表评论