Google Blogger 可让您轻松地将博客放在自定义顶级域名或自定义子域名, 例如:
www.example.com blog.example.com
该设置涉及创建指向以下内容的 CNAME:
ghs.google.com
如何将博客设置为位于自定义域中并且在 URL 路径中包含文件夹名称?
博客主页示例:
www.example.com/blog
ACNAME 不起作用因为这是 DNS 级别,而不是 HTTP 级别。重定向会改变用户浏览器中的 URL,因此这两者都不起作用。
有没有简单的方法可以做到这一点?(注意:我的注册商是 Namecheap,我的网站在 Umbra Hosting 的 Unix 服务器上运行带有 cPanel 的 Apache/2.2.16。)
答案1
有两种方法可以实现此目的。
方法 1:使用“meta”标签
你可以把index.html
文件放在www.example.com重定向至www.example.com/blog。此index.html
文件将使用以下标签中可用的“meta”标签<head>
:
例如
<html>
<head>
<meta http-equiv="refresh" content="0;url=http://www.example.com/blog/">
<title>www.example.com blog</title>
</head>
<body>
....
</body>
</html>
您可以阅读更多关于它们的内容这里。
笔记:此方法要求您只希望 www.example.com/index.html 重定向到 www.example.com/blog/。
方法 2:使用 Apache 重写
#-- blog.example.com --#
<VirtualHost *:80>
UseCanonicalName Off
RewriteEngine On
ServerName blog.example.com
# blog
RewriteRule ^/(.*)$ http://www.example.com/blog/$1 [L,R=301]
</VirtualHost>
方法 3:使用 Apache 反向代理
如果你试图通过 URL 引入流量http://www.example.com/blog/但你实际的博客是http://mysuperblog.blogger.com/,那么另一个选择就是将 mysuperblog.blogger.com 反向代理到负责位于最前面的 Apache 实例后面。
#-- www.example.com/blog --#
<VirtualHost *:80>
UseCanonicalName Off
RewriteEngine On
ServerName www.example.com
# /blog -> /blog/
RewriteRule ^/blog$ /blog/ [R]
# blog
ProxyPass /blog http://mysuperblog.blogger.com
ProxyPassReverse /blog http://mysuperblog.blogger.com
</VirtualHost>
笔记:为了使用 Apache 的反向代理功能,请确保启用 mod_proxy 模块。