0

我有一个 url [像这样:hostname.com],我想将 hostname.com/blog 设置为 blog.hostname.com。我正在使用 Apache 网络服务器。如果我需要提供更多信息,请告诉我!

4

3 回答 3

1

这应该适合你:

RewriteCond %{HTTP_HOST} ^(www\.)? hostname\.com$
RewriteRule ^([^/.]+)(/.*)?$ http://$1.hostname.com$2 [L,R=301]
于 2012-11-04T02:08:04.770 回答
1

如果您不只是进行重定向,并且实际上是在 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 设置)。如果没有,只需在必要的地方插入正确的路径。

于 2012-11-04T02:11:57.417 回答
1

哇,自从我第一次创建我的 SO 帐户和这个问题以来已经有一段时间了。不管怎样,从那以后我学到了很多东西,现在知道我想要完成的是创建一个子域。其他两个答案是正确的,因为它将设置一个子域......如果我有一个指向它的域。我在一个小型 AWS 免费层级 VPS 中使用 NoIP 域,而免费的 NoIP 东西不允许您创建子域。我认为如果我告诉我的 VPS 我想要一个子域,它会神奇地起作用。哎呀!


除了背景故事,要创建子域,您需要使用域主机添加指向您的服务器的新记录,并将您的服务器配置为接受该新子域。添加子域取决于您的提供商,但现在我使用 cloudflare,因此按照指南添加 A / CNAME 记录将起作用。添加记录后,使用其他两个答案让 apache 侦听该域。

感谢您(几乎)5年的回答,所以!

于 2017-08-03T19:44:10.250 回答