在 Apache 中将 URL 从子域名重写为域名

在 Apache 中将 URL 从子域名重写为域名

我的网络服务器正在运行 Plesk,我的网站结构部分如下:

/
/httpdocs (domain root folder, URL: http://www.domain.com)
/subdomains
/subdomains/blog/httpdocs (blog root folder, URL: http://blog.domain.com)

我在域根文件夹中安装了 WordPress,并将 WP 配置为访问时显示静态页面www.domain.com,访问时显示博客www.domain.com/blog

但是,我想重定向(使用 mod_rewrite)所有来自http://blog.domain.com/http://www.domain.com/blog/

举几个例子:

访问http://blog.domain.com/archives应该访问http://www.domain.com/blog/archives/ 访问http://blog.domain.com/tag/abc应该访问http://www.domain.com/blog/tag/abc/
访问http://blog.domain.com/some-post-title应该访问http://www.domain.com/blog/some-post-title

所有这些对用户来说都应该是透明的,浏览器的地址栏上的地址不应该改变。换句话说,我想要的是 URL 重写,而不是 URL 重定向。

这可以通过 mod_rewrite 实现吗?有人能帮我处理 .htaccess 吗?我所有的尝试都失败了……

答案1

当然,你可以将请求从blog.example.com代理到example.com/blog。你可以找到反向代理的简单示例在 mod_proxy 的文档中。只需将指令放在.htaccess文档根目录中的文件中blog.example.com或将它们放入相应的vhost.conf文件中即可。

.htaccess但我真的不认为仅仅重定向客户端有什么好处,只需将文件放入文档根目录中并添加blog.example.com以下内容即可:

RedirectPermanent / http://www.example.com/blog/

相关内容