Apache 将URL后缀设置为前缀

Apache 将URL后缀设置为前缀,apache,http,Apache,Http,我有一个url[Like this:hostname.com],我想将hostname.com/blog设置为blog.hostname.com。我正在使用ApacheWeb服务器。如果我需要提供更多信息,请告诉我 这应该适合您: RewriteCond %{HTTP_HOST} ^(www\.)? hostname\.com$ RewriteRule ^([^/.]+)(/.*)?$ http://$1.hostname.com$2 [L,R=301] 这应该适合您: RewriteCond

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

这应该适合您:

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

这应该适合您:

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

如果您不仅仅在执行重定向,而且实际上在blog.hostname.com上设置了一个服务器,那么您需要在extra/httpd-vhosts.conf中为每个子域配置另一个(虚拟)主机。有关配置虚拟主机的大量信息,请参阅

仅举一个来自内存的快速示例:

<VirtualHost blog.hostname.com:80>
    DocumentRoot /srv/www/blog
    ServerName blog.hostname.com
</VirtualHost>

DocumentRoot/srv/www/blog
ServerName blog.hostname.com

这意味着blog.hostname.com上的虚拟主机将显示与hostname.com/blog相同的页面。这是假设您的文档根是/srv/www(即linux设置)。如果没有,只需在需要的地方插入正确的路径。

如果您不仅仅是在重定向,而且实际上是在blog.hostname.com上设置服务器,那么您需要在extra/httpd-vhosts.conf中为每个子域配置另一个(虚拟)主机。有关配置虚拟主机的大量信息,请参阅

仅举一个来自内存的快速示例:

<VirtualHost blog.hostname.com:80>
    DocumentRoot /srv/www/blog
    ServerName blog.hostname.com
</VirtualHost>

DocumentRoot/srv/www/blog
ServerName blog.hostname.com

这意味着blog.hostname.com上的虚拟主机将显示与hostname.com/blog相同的页面。这是假设您的文档根是/srv/www(即linux设置)。如果没有,只需在必要的地方插入正确的路径。

哇,我已经有一段时间没有提出我的SO帐户和这个问题了。不管怎样,从那以后我学到了很多,现在我知道我要做的是创建一个子域。其他两个答案是正确的,因为它将设置一个子域。。。如果我有一个指向它的域。我使用了一个NoIP域作为一个小小的AWS免费层VPS,而免费的NoIP内容不允许你创建子域。我认为如果我告诉我的VPS我想要一个子域,它会神奇地工作。哎呀


撇开后台故事不谈,要创建子域,您需要使用域主机添加指向服务器的新记录,并将服务器配置为接受该新子域。添加子域取决于您的提供程序,但现在我使用cloudflare,所以按照指南添加a/CNAME记录就可以了。添加记录后,使用其他两个答案让apache监听该域


感谢(几乎)5年来对“现在”的回答,所以

哇,我已经有一段时间没有提出我的SO账户和这个问题了。不管怎样,从那以后我学到了很多,现在我知道我要做的是创建一个子域。其他两个答案是正确的,因为它将设置一个子域。。。如果我有一个指向它的域。我使用了一个NoIP域作为一个小小的AWS免费层VPS,而免费的NoIP内容不允许你创建子域。我认为如果我告诉我的VPS我想要一个子域,它会神奇地工作。哎呀


撇开后台故事不谈,要创建子域,您需要使用域主机添加指向服务器的新记录,并将服务器配置为接受该新子域。添加子域取决于您的提供程序,但现在我使用cloudflare,所以按照指南添加a/CNAME记录就可以了。添加记录后,使用其他两个答案让apache监听该域

感谢(几乎)5年来对“现在”的回答,所以