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