将URL后缀设为前缀

时间:2012-11-04 02:03:33

标签: apache http

我有一个网址[像这样:hostname.com],我想将hostname.com/blog发布到blog.hostname.com。我正在使用Apache Web服务器。如果我需要提供更多信息,请告诉我们!

3 个答案:

答案 0 :(得分:1)

这应该适合你:

RewriteCond %{HTTP_HOST} ^(www\.)? hostname\.com$
RewriteRule ^([^/.]+)(/.*)?$ http://$1.hostname.com$2 [L,R=301]

答案 1 :(得分: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设置)。如果没有,只需在需要的地方插入正确的路径。

答案 2 :(得分:0)

哇,自从我第一次提出我的SO帐户和这个问题以来已经有一段时间了。无论如何,从那以后我学到了很多东西,现在知道我想要完成的是创建一个子域。另外两个答案是正确的,它将设置一个子域...如果我有一个指向它的域。我使用NoIP域来获得一个小的AWS免费层VPS,免费的NoIP内容不允许你创建一个子域。我认为如果我告诉我的VPS我想要一个子域,它会神奇地工作。糟糕!

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

感谢(差不多)5年的答案,现在,SO!