因为想在域名下开设一个公共博客功能,也就是类似于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了。