Как я могу заставить htaccess работать (поддомены)?

Я немного разбираюсь в этих вещах, но я пытаюсь создать простой виртуальный субдомен с .htaccess. У меня есть подстановочный знак, и после многих копаний это то, что я придумал:

rewriteEngine On 
rewriteCond %{HTTP_HOST} !^$ 
rewriteCond %{HTTP_HOST} !^(www\.)?khpedia\.com$ [NC] 
rewriteCond %{HTTP_HOST}<->%{REQUEST_URI} ^(www\.)?([^.]+).*<->/([^/]+) [NC] 
rewriteCond %2<->%3 !^(.*)<->\1$ [NC] 
rewriteRule ^(.+) /%2/$1 [L]

Мой каталог настроен как

-root
--wiki
---- index.php
--test

Прямо сейчас, когда я путешествую на wiki.khpedia.com, я получаю страницу не найденной. Когда я путешествую по wiki.khpedia.com/index.php, он путешествует по wiki.khpedia.com/wiki/index.php. Я также могу получить доступ к wiki.khpedia.com/test. Если это пока не кажется очевидным, я хочу иметь возможность перейти на wiki.khpedia.com/index.php и посмотреть wiki.khpedia.com/wiki/index.php, но не в моей адресной строке. Извините за текстовый блок и спасибо за помощь.

Ответы

Ответ 1

Это работает на стороне Apache:

RewriteCond %{HTTP_HOST} !^www\.khpedia\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(.+).khpedia\.com$  [NC] 
RewriteRule ^(.*) /%1/$1 [L,QSA]

Но вы wiki-программное обеспечение может составить собственный разум о перенаправлениях/URL-адресах.

Ответ 2

RewriteCond ^(.*)$ /wiki/$1 [L]

Я смущен, когда в ваш вопрос попадают субдомены. Не могли бы вы привести примеры URL-адресов, которые вы хотите получить в браузере, и что они должны указывать на сервере?

ИЗМЕНИТЬ | Ах, теперь я вижу, что ответ Wrikken правильно обрабатывает субдомены:)