Как я могу заставить 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 правильно обрабатывает субдомены:)