我可以将 CNAME 到 subdomain/path/to/dir 吗?如果不行,我该如何隐藏路径?

我可以将 CNAME 到 subdomain/path/to/dir 吗?如果不行,我该如何隐藏路径?

我知道标题很糟糕,但无法用几句话来解释它。

我的问题如下...

服务器域名是 -

username.dyndns.org:9999

我在我的托管服务器上设置了带有 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

我想将网址缩短为svn.mydomain.com:9999 and trac.mydomain.com:9999

我该怎么做?我有哪些选择?

(不幸的是,我被告知无法将路径放入 CNAME,否则我只会让 trac.mydomain.com 指向 username.dyndns.org:9999/trac)

我能想到的 1 种最佳方法是使用虚拟主机,并为 svn 和 trac 使用不同的端口。但我想知道是否还有其他解决方案。

答案1

更新(仔细阅读问题后)

在您的 httpd.conf 文件中...

...确保出现类似于以下内容的行(注意,如果您拥有较新的 Linux 发行版之一,他们会采用疯狂/半脑死亡的目录链接方案来启用和禁用模块,如果是这种情况,您必须查阅您的发行版的文档)。

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 服务器上有其他未提及的内容,这可能会破坏它。

答案2

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

相关内容