我有一个 url [像这样:hostname.com],我想将 hostname.com/blog 设置为 blog.hostname.com。我正在使用 Apache 网络服务器。如果我需要提供更多信息,请告诉我!
3 回答
这应该适合你:
RewriteCond %{HTTP_HOST} ^(www\.)? hostname\.com$
RewriteRule ^([^/.]+)(/.*)?$ http://$1.hostname.com$2 [L,R=301]
如果您不只是进行重定向,并且实际上是在 blog.hostname.com 上设置服务器,那么您需要将 Apache 配置为在 extra/httpd-vhosts 中为每个子域使用另一个(虚拟)主机。 conf。有关配置虚拟主机的大量信息,请参阅http://foundationphp.com/tutorials/apache22_vhosts.php。
只是一个简单的例子:
<VirtualHost blog.hostname.com:80>
DocumentRoot /srv/www/blog
ServerName blog.hostname.com
</VirtualHost>
这意味着 blog.hostname.com 上的虚拟主机将显示与 hostname.com/blog 相同的页面。这是假设您的文档根目录是 /srv/www (即 linux 设置)。如果没有,只需在必要的地方插入正确的路径。
哇,自从我第一次创建我的 SO 帐户和这个问题以来已经有一段时间了。不管怎样,从那以后我学到了很多东西,现在知道我想要完成的是创建一个子域。其他两个答案是正确的,因为它将设置一个子域......如果我有一个指向它的域。我在一个小型 AWS 免费层级 VPS 中使用 NoIP 域,而免费的 NoIP 东西不允许您创建子域。我认为如果我告诉我的 VPS 我想要一个子域,它会神奇地起作用。哎呀!
除了背景故事,要创建子域,您需要使用域主机添加指向您的服务器的新记录,并将您的服务器配置为接受该新子域。添加子域取决于您的提供商,但现在我使用 cloudflare,因此按照本指南添加 A / CNAME 记录将起作用。添加记录后,使用其他两个答案让 apache 侦听该域。
感谢您(几乎)5年的回答,所以!