|
[+] Apache2, vhost i dynamiczne subdomeny
LordRuthwen - 13-04-2010 17:52
Witam. Zainstalowałem MUWordpress tworzący blogi jako prefixy domeny na jakiej siedzi i wszystko niby działa, ale prefixy przekierowane są na domenę domyślną dla tej maszyny, czyli:l Otwierając:
jakaśdomena.pl
otwiera się to co powinno czyli strona główna Wordpressa.l
lZakładając blog:
xyz.jakasdomena.pl
rejestruję użytkownika, wysyła maila itd., ale użytkownik się już nie aktywuje bo odnośnik z maila zawiera:
xyz.jakasdomena.pl/...
i nie zostaje znaleziony gdyż xyz.jakasdomena.pl szuka plików całkiem gdzie indziej (plik /etc/apache2/sites-available/default). W jaki sposób skonfigurować vhosta aby ,,łapał'' wszystkie odwołania do tej domeny niezależnie od tego co jest prefixem?
<VirtualHost *:80> ServerName jakasdomena.pl ServerAdmin webmaster@localhost ServerAlias www.jakasdomena.pl DocumentRoot /home/jakasdomena/www/ DirectoryIndex index.html index.htm index.php AccessFileName .htaccess <Files ~ "^\.ht"> Order allow,deny Deny from all </Files> <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory /home/jakasdomena/www/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> ErrorLog /home/jakasdomena/log/error.log LogLevel warn CustomLog /home/jakasdomena/log/access.log combined ServerSignature On </VirtualHost>
l
lessmian2 - 13-04-2010 18:30
Widzę dwie możliwości. Możesz pokombinować z mod_rewrite - sprawdzać główną domenę i odpowiednio przekierowywać żądanie. Możesz też zainteresować się mod_vhost_alias - tym też powinno się udać zrobić to, czego potrzebujesz.
LordRuthwen - 13-04-2010 19:07
Tak sobie myślę, jakbym usunął domyślne ustawienia z konfiguracji apache i ustawił przekierowanie dla błędu 404. Miałoby to chyba szansę powodzenia, bo jak na razie wszystko czego nie znajdzie w ustawieniach trafia na ustawienia z /etc/apache2/sites-available/default. Dobrze myślę?
lessmian2 - 13-04-2010 19:41
jakbym usunął domyślne ustawienia z konfiguracji apache
Tzn?
LordRuthwen - 13-04-2010 19:52
Chodzi mi o wyłączenie pliku /etc/apache2/sites-available/default z konfiguracji apache - vhosty są trzymane w osobnych plikach, które są odpowiedzialne tylko za nie. W pliku ,,default'' jest w tym momencie to: <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /home/apache/www/ # use .htaccess files for overriding, AccessFileName .htaccess # and never show them <Files ~ "^\.ht"> Order allow,deny Deny from all </Files> <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /home/apache/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn
CustomLog /var/log/apache2/access.log combined
Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory>
</VirtualHost>
I do tego właśnie odnosi się apache w momencie gdy czegoś nie może znaleźć.
lessmian2 - 13-04-2010 20:03
Jeśli usuniesz plik default (domyślnie link 000-default w sites-enabled), to na jego miejsce wskoczy kolejny plik (kolejność alfabetyczna według nazw plików) i będziesz miał właściwie to samo, tylko z innym VHostem. Nie wiem czy jasno to wytłumaczyłem. W każdym bądź razie defaultowego VHosta zawsze będziesz miał, a czy będzie w pliku default czy bryndza.conf to sprawa wtórna. Z resztą sprawdz:
apache2ctl -S
Dostaniesz spis wszystkich VHostów i zawsze jeden będzie oznaczony jako domyślny.
LordRuthwen - 13-04-2010 20:39
Oj, czyli jednak źle myślałem, a już się cieszyłem... ;) Jeszcze jakieś sugestie?
lessmian2 - 13-04-2010 20:52
A może tak po prostu:
ServerAlias *.jakasdomena.pl
Edit: Lub zamień miejscami pliki default i ten z konfiguracją VHosta jakasdomena.pl (pokombinuj z cyferkami).
LordRuthwen - 13-04-2010 21:05
A może tak po prostu:
ServerAlias *.jakasdomena.pl
Edit: Lub zamień miejscami pliki default i ten z konfiguracją VHosta jakasdomena.pl (pokombinuj z cyferkami).
O matko, a takie proste to było. To rozwiązanie z gwiazdką działa tak jak chciałem :) Próbowałem to wcześniej wepchnąć tu: <VirtualHost *:80>
ale efekt był odwrotny od zamierzonego. Dziękuję serdecznie :)
zanotowane.pldoc.pisz.plpdf.pisz.plminister.pev.pl
|