PDA

Zobacz pełną wersję : wildcard + subdomeny



mjmartino
18-12-2010, 18:55
Witam
Może wy mi pomożecie ;D bo sam na razie nie doznałem olśnienia :D
Otóż potrzebuje zrobić tak aby dostępne były 3 subdomeny ale nic ponadto tzn takie zdefiniowane prze zemnie.
domena1.hosting.pl
domena2.hosting.pl
domena3.hosting.pl

wiadomo że wildcard działa tak że przekieruje cokolwiek na hosting.pl (np. sex.hosting.pl ale wolałbym uniknąć takich sytuacji)
Nie chce robić przekierowań w katalogach.
Chciałbym jakoś zdefiniować w htaccess żeby działały tylko te 3 subdomeny a po wpisaniu co kolwiek.hosting.pl wywoływała się plik który by ładnie informował że niema takiego serwisu :)

To teraz burza mózgów ;D How to do it ;>

btw. temat dotyczmy J! mimo że nie jest to wspomniane :p

moje
18-12-2010, 19:21
... Nie chce robić przekierowań w katalogach. ...
?

Jak dobrze rozumiem:
jakasdomena.pl - chciane
pod1.jakasdomena.pl - chciane
pod2.jakasdomena.pl - chciane
pod3.jakasdomena.pl - chciane
{pozostałe}.jakasdomena.pl - niechciane ale z informacją, że taka strona ni istniej plus ewentualne przekierowanie na jakasdomena.pl
A to wszystko na jednej czy na czterech osobnych Joomla?

mjmartino
18-12-2010, 19:26
Tak właśnie :)
Wszystko na jednej będzie :)

moje
18-12-2010, 19:45
To jak oprzesz wszystko o jakiś system multisites, to wtedy masz rozwiązana kwestie poddomen.

Co do pozostałych, to mając wildcard możesz w pliku htaccess dla jakasdomena.pl dodać warunek, który sprawdza czy poddomena jest różna od pod1 lub pod2 lu b pod3 i jesli jest, to wtedy robi przekierowanie na np. jakasdomena.pl/brak-strony.html
To możesz otrzymać również poprzez napisanie odpowiedniego dodatku, który sprawdza daną frazę w adresie URL i dla odpowiedniego warunku wyświetla określony artykuł (a w nim komunikat).

mjmartino
18-12-2010, 20:22
No tak to ja to wszystko wiem :)
Bardziej mi chodziło o jakiś przykład w htaccess'ie takiej realizacji
Bo tam tyle tych przełączników warunków .. że ciężko się w tym odnaleźć .. w szczególności jak ma się z tym styczność 5 razy do roku
O dodatku na razie nie myślałem , póki co próbuje ogarnąć to w htaccessie :)
Jak taki RewriteCond będzie wyglądał ;P bo przecież zanim coś mi się uda sklecić to wiosna będzie i 1.6 J ;)
Ewentualnie jak masz jakieś materiały przystępne (ludzkie bo te z google sa nie ludzkie :P) do zapoznania i opanowanie tych wszystkich przełączników reguestów itp to chętnie się przyuczę ;D

Dylek
18-12-2010, 21:08
http://www.easymodrewrite.com/example-subdomains ?

mjmartino
18-12-2010, 22:59
http://www.easymodrewrite.com/example-subdomains ?
Niezbyt pomocne ja nie chce tworzyć subdomen bo je mam utworzone... ehh ale dzięki za linka z innego działu jedna rzecz mi się przydała :)

Chyba zrobię to zupełnie inaczej bo widzę .. że eksperta na forum od apache zwyczajnie niema po prostu.

Dylek
18-12-2010, 23:05
Ale w apache'u to chyba w miare proste powinno byc - to nie to przypadkiem:


<VirtualHost twoj.adres.ip.serwera>
DocumentRoot /www/stronka
ServerName www.twojadomena.pl
ServerAlias *.twojadomena.pl
</VirtualHost>


A co z tymi subdomenami co masz.... Hmmm... Czy przypadkiem umieszczeniue ich w podobny sposob NAD powyzszym wpisem nie bedzie zaczytrywane najpierw do ustawien serwera i wykonywane, a pozniej wildcard dla reszty?

mjmartino
19-12-2010, 10:02
To może nie tak zacznijmy od tego

RewriteCond %{HTTP_HOST} ^subdomena\.hosting\.pl [nc]
RewriteRule ^(.*)$ http://subdomena.hosting.pl/dokumnet.html
Czy jest to poprawnie skonstruowane ? bo dostaje komunikat że

"Found
The document has moved here."

moje
19-12-2010, 12:33
Ale po co się męczysz, użyj jakiegoś systemu miltisites dla Joomla, wtedy poddomeny pożądane będziesz miał z głowy.

Co do pozostałych niepożądanych dpoddomen, to warunek musi być czy nie zawiera poddomeny1 lub poddomeny2 lub poddomeny3, negacje otrzymuje się poprzez wstawienie wykrzyknika na początku.
Coś takiego powinno być poprawne:

RewriteCond %{HTTP_HOST} !^http://(.+\.)?(poddomena1|poddomena2|poddomena3|)\.twojad omena\.pl [NC]
RewriteRule . http://twojadomena.pl/brak-strony.html [R]
Albo to powinno być poprawne:

RewriteCond %{HTTP_HOST} !^http://(.+\.)?(poddomena1|poddomena2|poddomena3|) [NC]
RewriteRule !^http://(.+\.)?twojadomena\.pl http://twojadomena.pl/brak-strony.html [R]
Ale niczego nie gwarantuje.

mjmartino
19-12-2010, 19:20
Hej
pierwsze nie działa
drugie działa ale każdą sub przekierowuje na brak-strony (już wiem przynajmniej jak mniej więcej taki warunek sklecić dzięki moje)
Dobra czyli zostało rozwianie które znalazłem muszę protestować lub multisites :) które w zasadzie było pierwsza myślą (najmniejsza linia oporu :P)
Dzięki Panowie za chęć pomocy :D
virtualny beer leci :)

moje
19-12-2010, 19:24
Możesz jeszcze stworzyć dodatek, który będzie sprawdzał czy adres URL ma poddomenę, która jest niepożądana i jeśli ma to, wyświetli odpowiedni komunikat (artykuł).

Odnośnie adresu URL pomocne będzie JURI.

EDIT:

A taki warunek:

RewriteCond %{HTTP_HOST} !^http://(.+\.)?(poddomena1|poddomena2|poddomena3|twojadome na) [NC]
RewriteRule . http://twojadomena.pl/brak-strony.html [R]?