我很难为Wordpress 3.4.2(截至本文的最新版本)启用多站点的博客设置重写规则和URL结构。
www.ourdomain。com/是电子商务网站的主页。
我们也有www。我们的域名。com/example-category/andwww。我们的域名。com/示例产品/
作为我们的类别和产品URL结构。这一切都在起作用。
我已经在物理文件夹/var/www/ourdomain/wordpress中安装了wordpress文件。现在,www.ourdomain。com/wordpress/转到默认博客。www.ourdomain。com/wordpress/blog1是第一个博客和www.ourdomain。其次是com/wordpress/blog2。
我已经通过添加
ReWriteRule ^/wordpress - [L,NC]
到我们的vhost文件(.htaccess是diasabled)。
我们的目的是(用户)直接请求www.ourdomain.com/wordpress(/*)
重定向到主页www.ourdomain.com/
自/wordpress
文件夹只是用来存储文件,而不是作为用户访问的实际博客。
请求www.ourdomain.com/blog/
应自动重定向到www.ourdomain.com/wordpress/blog1
. 请求www.ourdomain.com/policies/
应自动重定向到www.ourdomain.com/wordpress/blog2
.
因此:
/wordpress/ -> 301 /
/blog/ -> silent /wordpress/blog1
/policies/ -> silent /wordpress/blog2
这在理论上似乎很简单,但在实践中却不那么简单。
我从以下内容开始:
ReWriteRule ^/wordpress - [L,NC]
RewriteRule ^/blog/(.*)$ /wordpress/blog/$1 [L,NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/blog/ /wordpress/blog/index.php [L]
结果是404 at/blog/。当然,因为
/wordpress/blog/index.php
不是文件。没有
blog
中的文件夹
wordpress
文件夹我要加载的文件是
/wordpress/index.php
, 它读取URL以确定加载哪个博客-但URL已被修改,因此此操作失败。我需要一种方法来调用
/wordpress/index.php
来自URL/blog/,但使
/wordpress/index.php
查看请求,就像用户转到
/wordpress/blog
.
有没有办法从modRewrite向PHP传递一个假URI?或者是另一种不需要安装到WordPress的单独副本就可以实现这一点的方法?
UPDATE:
由于当前版本中似乎不支持这一点,但我仍然需要在新版本发布之前进行这项工作,因此我认为一种解决方法是使用以下内容:
RewriteRule ^/blog/ /wordpress/index.php?site=blog [L]
然后修改读取URL的WordPress文件,并让它根据GET参数设置站点变量。这样行吗?哪个文件包含设置当前站点的代码?