我有一个托管在 1.2.3.4 上的 Wordpress 实例,其 DNS 设置如下:
A foo.com 1.2.3.4
A category.foo.com 1.2.3.4
可以从两个主机名访问该站点,但是,我希望请求 来category.foo.com
呈现 处的内容foo.com/category
。
在工作场景中,以下请求将起作用:
category.foo.com -> foo.com/category
category.foo.com/abc -> foo.com/category/abc
我目前正在尝试使用 mod_rewrite 来解决这个问题:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^category.foo.com
RewriteRule ^(.*) /category$ [L]
但是,这会导致无限循环,因为每个请求都会被重写。我也尝试过使用该[NS]
标志,认为RewriteRule
这会停止后续请求的重定向,但事实并非如此。
我是否遗漏了某些内容mod_rewrite
,或者我应该采用其他方法吗?
请注意,我不想category.foo.com
301 重定向到,foo.com
因此到达的访问者category.foo.com
应该在他们的浏览器中看到它。
答案1
为每个域配置一个虚拟主机。您可以在主配置文件中配置所有虚拟主机,也可以将每个虚拟主机放在 sites-enabled 目录内的单独文件中。可以找到示例这里。你的可能看起来像这样。
# Ensure that Apache listens on port 80
Listen 80
<VirtualHost *:80>
DocumentRoot "/var/www/wordpress"
ServerName www.example.com
# Other directives here
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/var/www/wordpress/category"
ServerName category.example.org
# Other directives here
</VirtualHost>