Czy można użyć .htaccess do przepisania subdomeny do katalogu?
Przykład:
pokazuje zawartość
Czy można użyć .htaccess do przepisania subdomeny do katalogu?
Przykład:
pokazuje zawartość
Spróbuj umieścić to w swoim pliku .htaccess:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^sub.domain.com
RewriteRule ^(.*)$ /subdomains/sub/$1 [L,NC,QSA]
Aby uzyskać bardziej ogólną regułę (która działa z każdą subdomeną, a nie tylko sub
), zamień ostatnie dwie linie na następującą:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com
RewriteRule ^(.*)$ subdomains/%1/$1 [L,NC,QSA]
http://test.domain.com
, adres URL przekieruje mnie dohttp://test.domain.com/subdomains/test/
. Czy to możliwe bez pokazywania/subdomains/test/
na końcu?P
flagę opróczL
.http://test.domain.com/subdomains/test/
, kiedy chcę, żeby tylko się wyświetlałohttp://test.domain.com/
test.domain.com/subdomains/test
- może dzieje się coś innego. Czy możesz dodaćRewriteBase /
zaraz potemRewriteEngine on
? Ponadto, jeśli chcesz, aby był wyświetlanytest.domain.com
, będziesz musiał użyć mod_proxy i[P]
flagi.Nie jestem ekspertem od mod_rewrite, często się z tym zmagam, ale zrobiłem to na jednej z moich witryn, może potrzebować innych flag itp. W zależności od okoliczności. Używam tego:
Wszelkie inne reguły przepisywania dla reszty witryny muszą zostać wprowadzone później, aby zapobiec zakłócaniu przepisywania subdomeny.
źródło
.htaccess
wejdzie na tę stronę (tak jak ja), oprócz stworzenia właściwego.htaccess
pliku, aby był on skuteczny, musisz ustawićAllowOverride
w swoichVirtualHost
ustawieniach ( stackoverflow.com/a/22819550/1657502 ) , włączrewrite
moduł Apache, a następnie zrestartuj Apache ( stackoverflow.com/a/5758551/1657502 )www.
prefiks jest prawdopodobnie najlepiej obsługiwany przez przekierowanie niż przepisanie.Możesz użyć następującej reguły w .htaccess, aby przepisać subdomenę do podfolderu:
Wyjaśnienie wiersz po wierszu:
Powyższa linia informuje serwer, aby włączył silnik przepisywania adresów URL.
Ten wiersz jest warunkiem dla RewriteRule, w którym dopasowujemy do hosta HTTP przy użyciu wzorca wyrażenia regularnego. Warunek mówi, że jeśli host to sub.domain.com, wykonaj regułę.
Reguła pasuje do http://sub.domain.com/foo i wewnętrznie przekierowuje ją na http://sub.domain.com/folder/foo .
Zastąp sub.domain.com nazwą subdomeny, a folder nazwą folderu, do którego chcesz skierować swoją subdomenę.
źródło
Miałem ten sam problem i znalazłem szczegółowe wyjaśnienie w http://www.webmasterworld.com/apache/3163397.htm
Moje rozwiązanie (zawartość poddomen powinna znajdować się w folderze o nazwie
sd_subdomain
:źródło
To przekierowuje do tego samego folderu do subdomeny:
.httaccess
źródło
Spróbuj umieścić ten plik .htaccess w folderze subdomeny:
Przekierowuje do http://domain.com/subdomains/sub/ , gdy chcesz, aby pokazywała tylko http://sub.domain.com/
źródło
Przekierowanie katalogu subdomeny:
źródło
W przypadku każdego żądania subdomeny użyj tego:
Po prostu utwórz folder taki sam jak nazwa domeny podrzędnej, której potrzebujesz. Folder musi istnieć w następujący sposób: domena.com/sub dla sub.domain.com .
źródło