2

我在域 www.mywpsite.com 上有一个单一的 Wordpress 应用程序。

我有静态页面:

a. www.mywpsite.com/subsite
b. www.mywpsite.com/subsite/child1
c. www.mywpsite.com/subsite/child2

并且需要使用这样的子域分别处理该内容:

a. subsite.mywpsite.com
b. subsite.mywpsite.com/child1
c. subsite.mywpsite.com/child2

注意子域没有物理结构,只是别名的一种方式,一个文档根目录下只有一个Wordpress安装。另外,我有几页,只有一个子域可以使用,因此“逐案”解决方案是有效的。

最终,我还将对一些动态内容使用相同的子域:

d. www.mywpsite.com/category/subsitenews => subsite.mywpsite.com/news

最后,如果可能的话,我需要保留在地址栏中的 url 是使用子域的那个,我的意思是:

  1. 用户键入 subsite.mywpsite.com/some-static-or-dynamic-content。
  2. 重定向到适当的 wordpress 内容,并传递内容。
  3. 用户中的 url 使用子域仍然相同,而不是重定向的 url。

我怎样才能做到这一点?

我想我必须使用 .htaccess 但我不知道它是如何工作的。我不确定我发现的其他问题是否与我的问题有关。

重定向子域并保留 url 结构

.htaccess 重定向 ~ [fake-subdomain.domain.com/*] 到 [domain.com/*]

非常感谢。

4

1 回答 1

1

如果子域与主域不在同一台服务器上且不在同一文档根目录下,则您需要使用反向代理,或P使用 mod_rewrite 的标志。您可以尝试将这些规则添加到文档根目录中的 htaccess 文件中,最好在可能已经存在的任何规则之上:

RewriteEngine
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?([^/]+)/([^/]+)/?$ http://$1.mywpsite.com/$2 [L,P]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?([^/]+)/?$ http://$1.mywpsite.com/ [L,P]

这里的问题是动态内容,即 wordpress 动态生成的内容,也将被发送到子域。没有办法在 htaccess 级别上区分什么是有效的动态内容,什么不是。为了检查这一点,您需要在 wordpress CMS 中执行此操作,这可能是某种方式,但它需要自定义代码或至少一个插件,并且可能需要自定义插件。

于 2012-10-16T20:46:13.047 回答