我可以CNAME到子域/path/到/迪尔? 如果不是我怎么能隐藏path?

我知道这个问题太可怕了,但却找不到用几句话来解释的方法。

我的问题是…

服务器域是 –

username.dyndns.org:9999 

我在我的托pipe服务器上用CNAME设置子域名。

 trac.mydomain.com -> username.dyndns.org svn.mydomain.com -> username.dyndns.org 

所以trac / svn的url是:

 trac.mydomain.com:9999/trac svn.mydomain.com:9999/svn/repos 

我想缩短url为svn.mydomain.com:9999 and trac.mydomain.com:9999

我该怎么做呢? 我有什么select?

(不幸的是,我被告知这是不可能的pathCNAME,否则我只是让trac.mydomain.com指向username.dyndns.org:9999/trac)

1定义我能想到的自己是使用虚拟主机,只是使用不同的端口svn和trac。 但我想知道是否有更多的解决scheme。

更新 (在仔细阅读问题之后)

在你的httpd.conf文件中…

…确保出现类似如下的行(注意,如果你有一个新的Linux发行版,他们做了一个疯狂的/半脑子目录链接scheme来启用和禁用模块,你必须咨询如果是这样的话,你的发行版文档)。

 LoadModule rewrite_module libexec/apache22/mod_rewrite.so 

…然后,在文件后面的某个地方,你应该有一些组织/结构,把类似的指令组合在一起,把类似这样的行:

 <IfModule rewrite_module> RewriteEngine on RewriteCond %{HTTP_HOST} trac.example.com RewriteRule (.*) /trac$1 RewriteCond %{HTTP_HOST} svn.example.com RewriteRule (.*) /svn/repos$1 </IfModule> 

注意

如果你还没有提到Apache服务器上有其他的东西,这可能会打破这个。

您可以创build两个虚拟主机 (可以使用相同的端口)与mod_rewrite结合使用。