似乎这个服务器redirect问题可能比wordpress堆栈交换更适合serverfault。
最初我们在example.com上有一个静态营销网站,在www.joesexample.com/blog上有wordpress博客。
我们现在将该博客移至blog.joesexample.com。 然而,这个博客是托pipe在不同的服务器(相同的服务器名称,但不同的WP特定的主机)。
原来的营销网站仍然在原来的其他服务器上。
所以大概在www.joesexample.com/blog的原始主机上,我们将清空该文件夹并添加一个需要redirect301的.htaccess,以便任何人进入joesexample.com/blog将被永久redirect到blog.joesexample.com。以及将所有postredirect到新的位置。 例如,将www.joesexample.com/blog/2014/01/my-post-title/redirect到blog.joesexample.com/2014/01/my-post-title/
基于谷歌的结果将做以下工作:
RewriteEngine ON RewriteCond %{REQUEST_URI} ^/blog RewriteRule ^(.*)$ http://blog.joesexample.com/$1 [R=301,L,P]
不知道,因为他们是在不同的服务器(ips),如果这很重要,我想这不会因为域名是相同的,如果该规则将只覆盖主博客主页redirect或所有职位,我不知道它是否会redirect以年/月/post标题格式的post。
最后,我之所以先问这里,而不是简单地自己testing,是因为它是另一个人访问这个特定的服务器,所以我想相当有信心,它会在我有他们尝试之前工作。
更新 – 走在前面,并试图让人使用上面的htaccess。 这一切似乎工作,除非它不重写URL字段中的url。
我的意思是,如果我去http://www.joesexample.com/blog ,现在正确显示来自http://blog.joesexample.com的内容,但是URL字段仍显示http://www.joesexample。 com / blog 。 所以这听起来像我仍然需要一个额外的htaccess规则,将改变URL栏中的URL外观。 有什么想法吗?
您正在使用导致请求被mod_proxy处理的[P]标志。
如果您希望浏览器使用HTTP 301代码redirect,因此显示真实的URL,那么您的标志只应该是[R=301,L] 。
这可能会帮助你: