将子域重定向到wordpress内容

时间:2012-10-16 18:39:15

标签: wordpress .htaccess redirect subdomain

我在域名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

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

  1. 用户输入subsite.mywpsite.com/some-static-or-dynamic-content。
  2. 对适当的wordpress内容执行重定向,并传送内容。
  3. 使用子域而不是重定向的网址,用户的网址仍然相同。
  4. 我该怎么做?

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

    redirect subdomain and retain url structure

    .htaccess redirect ~ [fake-subdomain.domain.com/*] to [domain.com/*]

    非常感谢你。

1 个答案:

答案 0 :(得分:1)

如果子域不在同一台服务器上,并且在与主域相同的文档根目录下,那么您将需要使用反向代理,或使用mod_rewrite使用P标志。您可以尝试将这些规则添加到文档根目录中的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中进行,可能是某种方式,但它需要自定义代码或至少一个插件,并可能自定义插件。