Я знаю, что это ужасно, но не мог найти способ объяснить это в нескольких словах.
Моя проблема в следующем ...
Домен сервера -
username.dyndns.org:9999
Я настраиваю поддомен с CNAME на моем хостинг-сервере.
trac.mydomain.com -> username.dyndns.org
svn.mydomain.com -> username.dyndns.org
Итак, URL-адрес trac / svn:
trac.mydomain.com:9999/trac
svn.mydomain.com:9999/svn/repos
Я хочу сократить URL-адреса до svn.mydomain.com:9999 and trac.mydomain.com:9999
Как мне это сделать? какие у меня варианты?
(к сожалению, мне сказали, что невозможно указать путь в CNAME, иначе я бы просто указал trac.mydomain.com на username.dyndns.org:9999/trac)
Я определил, как я могу думать о себе, - это использовать виртуальные хосты и просто использовать другой порт для svn и trac. Но мне интересно, есть ли еще решения.
Обновлено (внимательно прочитав вопрос)
В вашем файле 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, о котором вы не упомянули, это, скорее всего, сломает это.
Вы можете создать два виртуальный хост (и можно использовать тот же порт) в сочетании с mod_rewrite.