我试图在我的服务器上实现3件事情:
为此,我使用以下规则设置了httpd-vhosts.conf文件:
NameVirtualHost *:80 <VirtualHost *:80> ServerName cat.mydomain.com ServerAlias cat.mydomain.com DocumentRoot /home/www/ </VirtualHost> <VirtualHost *:80> ServerName *.mydomain.com/indexed/ ServerAlias *.mydomain.com/indexed/ DocumentRoot /home/www/indexed/ </VirtualHost> <VirtualHost *:80> DocumentRoot /home/www/project/web/ ServerName *.mydomain.com ServerAlias *.mydomain.com </VirtualHost>
其中两个像预期的那样工作,cat.mydomain.com指向/ home / www /和* .mydomain.com指向/ home / www / project / web /,但显然不是redirect目录*的正确方法。 mydomain.com/indexed/,因为这是行不通的。 我怎样才能工作? 是虚拟主机部分这样做的正确的地方,或者应该在.htaccess文件而不是?
与ServerAlias不同, ServerName不能包含通配符,所以这个
ServerName *.mydomain.com
显然是错误的。 另外阅读ServerName的文档显示以下语法
语法 :
ServerName [scheme://]fully-qualified-domain-name[:port]
所以
ServerName *.mydomain.com/indexed/
也是错的 您还应该查看ServerAlias的语法,因为在某些情况下也有错误。
你应该看看Alias指令。 在你的虚拟主机定义里面,一个合适的别名应该做你想要的。