![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 109 Pomógł: 9 Dołączył: 12.03.2007 Skąd: kraków/tarnobrzeg/baranów/suchorzów Ostrzeżenie: (0%) ![]() ![]() |
Tak jak w temacie. Potrzebuje zrobić przepisanie które uruchomi się tylko raz. Chcę sobie zrobić coś na zasadzie serwerów wirtualnych lecz takich których nie trzeba konfigurować. Htaccess w zależności od tego jaka jest domena ma sam przekierować wywołanie do odpowiedniego katalogu.
A przekierowanie ma uruchomić się tylko raz dlatego że nie chcę aby mi się moduł rewrite zapętlił, czego efektem jest pojawianie się błędu 500. RewriteCond %{ENV:skip} !yes RewriteRule (.*) /sites/%{SERVER_NAME}/public/$1 [E=skip:yes] Stworzyłem coś takiego jak powyżej. Ale coś jest nie tak bo za każdym razem dostaję błąd 500. Konstrukcja jest na tyle prosta że chyba ciężko by tu było coś zepsuć. Nasuwa się może komuś pomysł co w tych dwóch linijkach jest źle ? Bądź ewentualnie ma ktoś lepszy pomysł jak zmusić moduł rewrite żeby to przepisanie odbyło się wyłącznie tylko raz ? |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
A nie lepiej to skonfigurować przez <virtualhost>...? Możesz przecież użyć maski.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 109 Pomógł: 9 Dołączył: 12.03.2007 Skąd: kraków/tarnobrzeg/baranów/suchorzów Ostrzeżenie: (0%) ![]() ![]() |
Nie. Musiałbym mieć dostęp do httpd.conf którego nie mam. Pozostaje htaccess.
|
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
No to przecież wystarczy zrobić tak, jak w wirtualnym PH: http://eriz.pcinside.pl/weblog/mod_rewrite...ac-208.html#t61
Tylko sprawdzasz HTTP_HOST, bez żadnych środowiskowych, a każdy VHost ma swój htaccess. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 109 Pomógł: 9 Dołączył: 12.03.2007 Skąd: kraków/tarnobrzeg/baranów/suchorzów Ostrzeżenie: (0%) ![]() ![]() |
Tylko że ja chcę zrobić rozwiązanie uniwersalne. Nie chcę dopisywać przy każdym nowym hoście oraz każdej nowej domenie kolejnych wpisów w pliku htaccess ani także nie chcę tworzyć żadnych nowych plików. Dodanie nowej domeny ma się odbywać na zasadzie utworzenia tylko nowego katalogu.
/glowny/domena1.pl /glowny/domena2.pl /glowny/domena3.pl Wszystkie te domeny domena1.pl, domena2.pl, domena3.pl są skierowane na katalog główny "glowny". Potrzebuje teraz wykonać tylko raz przekierowanie na określony podkatalog w zależności od server_name. Z wiadomych powodów to przekierowanie ma być wyłącznie tylko raz wykonane. @erix - Przestań mówić ogólnikami oraz przeczytaj treść mojego tematu. Mnie interesuje wyłącznie ten konkretny przypadek, czyli jak zrobić żeby rewriterule wykonało się wyłącznie raz. RewriteCound i sprawdzenie warunków jakoś dziwnie działa (albo raczej nie działa). |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat RewriteCound i sprawdzenie warunków jakoś dziwnie działa (albo raczej nie działa). Dobrze działa, tylko trzeba odpowiednio regułki skonfigurować. A Ty zacznij działać i próbuj coś, a nie tylko narzekasz, jakby Ci ktoś jeszcze łaskę robił, że w ogóle odpisuje. Mogę i ja przestać, proszę bardzo, ale zbytniego zainteresowania tematem chyba nie ma, więc zabierz się do roboty, a nie narzekasz. Co do uniwersalności - będzie uniwersalne, gdyż podpinasz wszystkie domeny pod jeden katalog, a gdybyś uważnie przeczytał moją zalinkowaną notkę, byś wiedział, że zmienne testowane w wyrażeniach z RewriteCond można wykorzystywać również w RewriteRule. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 109 Pomógł: 9 Dołączył: 12.03.2007 Skąd: kraków/tarnobrzeg/baranów/suchorzów Ostrzeżenie: (0%) ![]() ![]() |
Rozwaliłeś mnie całkiem z tym narzekaniem (IMG:style_emoticons/default/smile.gif) Plus dla Ciebie (IMG:style_emoticons/default/winksmiley.jpg) Cieszę się że ktoś mi odpisał, ale to nie to czego poszukuję no ale Ty myślisz że to to (IMG:style_emoticons/default/biggrin.gif)
Poszukuję sposobu aby zmusić ten moduł do tego aby konkretne przepisanie wykonało się tylko raz. Nie 10 razy, tworząc mi pod drodze adres typu : /glowny/domena1.pl/glowny/domena1.pl/glowny/domena1.pl/glowny/domena1.pl....../glowny/domena1.pl/obrazek.jpg i wyrzucając w efekcie że został osiągnięty limit maksymalnej ilości przepisań i oczywiście pojawianie się błędu 500 :/ Znajdując sposób na wykonanie tylko jednego przepisania, umożliwiłoby tworzenie całkiem ciekawych htaccessów. Nic to, szukam dalej. Ps. A propo Twojej strony, bardzo ciekawe spojrzenie na filozofię frameworków z którym się zgadzam (IMG:style_emoticons/default/smile.gif) Ten post edytował szagi3891 17.08.2009, 22:35:39 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 333 Pomógł: 137 Dołączył: 25.03.2008 Skąd: jesteś?? Ostrzeżenie: (0%) ![]() ![]() |
Ja mam to napisane coś w ten sposób:
RewriteCond %{HTTP_HOST} ^www.([a-z0-9]*).pl$ [NC] RewriteCond %{REQUEST_URI} !^/users/.*/www/$ [NC] RewriteRule ^(.*)$ /users/%1/www/$1 [L] Nie wiem czy działa, na szybko edytowałem by dopasować do potrzeb. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 109 Pomógł: 9 Dołączył: 12.03.2007 Skąd: kraków/tarnobrzeg/baranów/suchorzów Ostrzeżenie: (0%) ![]() ![]() |
Pomysł naprawdę dobry. Tak też chyba zrobię w ostateczności.
Jest jeden minus takiego rozwiązania. W tym wypadku jeśli utworzę sobie jakąś domenę (domek.pl) czyli że utworzę sobie katalog /users/domek.pl/www/ to przykładowo odwołanie które przyjdzie : domek.pl/users/mieszkanie.pl/www/ nie zostanie przekierowane. Czyli to żądanie zostanie potraktowane jak gdyby ktoś odwołał się do katalogu głównego domeny mieszkanie.pl No i właśnie przed tą sytuacją chciałbym się ustrzec. Ten post edytował szagi3891 19.08.2009, 17:17:37 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 20:34 |