
Обслуживается Apache Я хотел бы наодинподдомен моего сайта (скажем sub.mydomain.com
), URL-адреса которогобезКонечные слеши указывают напрямую (без внешнего перенаправления) на файл индекса в базовой папке. Запросы поддоменов внутренне перенаправляются в подпапку. Все остальные URL должны работать обычным способом Apache с внешним перенаправлением на версию с косой чертой.
Все директивы должны быть в моем файле .htaccess. Чтобы это заработало, я планирую сделать следующее:
- Отключить
DirectorySlash
для запросовsub.mydomain.com/...
- Перепишите
sub.mydomain.com/…
запросы на/sub/...
- Перепишите URL-адреса каталогов без косой черты, чтобы
/sub/...
получить доступ кindex.html
внутренней части базового каталога
У меня есть хорошая идея, как сделать 2. и 3., но как мне выдатьDirectorySlash off
только для запросовsub.mydomain.com
, но не к www.mydomain.com
или other.mydomain.com
?
решение1
Судя по всему, ваш sub
поддомен отображается в том же каталоге, что и основной домен и все остальные поддомены ( www
и other
и т. д.).
Однако, если все запросы к sub
поддомену внутренне переписываются на/sub
подкаталогто вы, вероятно, можете просто создать еще один .htaccess
at /sub/.htaccess
, в котором вы установите DirectorySlash Off
- это затем будет применяться ко всем запросам к sub
поддомену. (Предполагая, что вы также не обращаетесь к тому же подкаталогу через другое имя хоста. Вы можете предотвратить это, если хотите.)
В этом /sub/.htaccess
файле вы также реализуете пункт 3 своих требований.
Корневой .htaccess
файл просто перезаписывает все запросы к sub
поддомену в /sub
подкаталог.
В стороне:Поскольку вы задаете этот вопрос на ServerFault, обычно предполагается, что у вас есть полный контроль над сервером. В этом случае предпочтительнее настроить этот sub
поддомен в его собственном контейнере vHost, который указывает непосредственно на /sub
подкаталог (или куда-то за пределами основного дерева каталогов доменов в идеале). В этом случае вам не нужно будет реализовывать #2 ваших требований, и вы просто установите DirectorySlash Off
для всего поддомена.