![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 1 Dołączył: 9.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam!!
Mam małe problemy aby pozbyć się znaczka ~ z adresu strony. GŁÓWNY PROBLEM: Chodzi o to aby nawet, jeśli wejdę na stronę "domena.pl/~user/" to żeby w pasku przeglądarki wczytywała się strona o adresie "domena.pl/user/" (takie niby przekierowanie). CZĘŚCIOWE ROZWIĄZANIE: Problem częściowo rozwiązałem za pomocą google i mod_rewrite po zmianie pliku ".htaccess": Kod RewriteEngine On Plik ".htaccess" jest umieszczony w katalogu głównym strony na "domena.pl/".RewriteRule ^user$ /~user/ RewriteRule ^user/$ /~user/ RewriteRule ^user/index\.php$ /~user/index\.php Teraz niestety, ale jesli robie przekierowanie ze strony ze znaczkiem "~" na stronę jako katalog bez znaczka, poprzez umieszczenie pliku ".htaccess" (oczywiście tu są inne instrukcje) w "domena.pl/~user/", to strony się zapętlają, bo przecież plik ".htaccess" w "domena.pl/" odwołuje się do realnych danych w "domena.pl/~user/". Tak więc stosowanie plików ".htaccess" w obu lokalizacjach jest bezcelowe. PYTANIE: W takim razie skąd wiadomo, że akurat internauta wpisuje w przeglądarce adres "domena.pl/~user/", a nie "domena.pl/user/"(IMG:style_emoticons/default/questionmark.gif) Gdybym to wiedział to mógłbym nawet zrobić taką regułkę w samym PHP, ale takiej możliwości nie znalazłem w zmiennej globalnej $_SERVER :/ Serwer jest na freebsd, apache 2.0. Mam dostęp do wszystkich plików konfiguracyjnych. Problem oczywiście dotyczy tylko przekierowania tego jednego wybranego usera. P.S. Chciałem to zrobić na Virtual Hoscie w samym apache'u, ale opisywana tu jako "domena.pl" to w rzeczywistości adres "subdomena.glowna_domena.pl" i próby w stylu "dowolna_nazwa.subdomena.glowna_domena.pl" już nie działa. Na mojej domenie na lokalnym serwerze pod windą takie rzeczy spokojnie mogę robić. Widocznie Ci z "glowna_domena.pl" mają poblokowane podstrony. Ten post edytował mxm 15.10.2009, 17:47:54 |
|
|
![]() |
![]() ![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 1 Dołączył: 9.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
Heh, a co to apache nie ma katalogów wirtualnych?? Od kiedy?? Kwestia tylko jak tego się używa. TO JEST PROBLEM!!! Zresztą katalog wirtualny to nie wszystko, bo chcę przekierować cały ruch do głównego katalogu na głównej domenie. W dodatku chcę zrobić to tylko dla wybranego JEDNEGO użytkownika!
ROZWIĄZANIE PROBLEMU: KROK 1 (opcjonalny): Pogrzebałem sobie w tym temacie bardzo głęboko. Dowiedziałem się, że można bardzo łatwo zablokować wybranego usera z tyldą poprzez plik apacha "httpd.conf". Wyłączamy użytkownika wybranego z tyldą dopisując go do wyłączonych (IMG:style_emoticons/default/smile.gif) Oczywiście ten krok można pominąć, gdyż sam apache umożliwia zamaskowanie adresu z tyldą. KROK 2: Teraz czas na VirtualHost i jego niezwykłe możliwości. Przykładowa konfiguracja w "httpd.conf": W ten sposób mamy dostęp do strony user poprzez wirtualny katalog domeny głównej bez tyldy: domena.pl/user. Oczywiście słowo user nie musi być użytkownikiem, który istnieje w systemie, więc możliwości są duże. Oczywiście hurtowo dla wszystkich userów można takie coś zrobić, ale w moim przypadku chciałem to wykonać tylko dla jednego wybranego (IMG:style_emoticons/default/smile.gif) Całą operację można wykonać tylko jeśli mamy dostęp do pliku konfiguracyjnego apacha. Jak to działa?? A teraz opiszę naważniejsze regułki:
Mam nadzieje, że przyda się to komuś (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.10.2025 - 18:39 |