![]() |
![]() ![]() |
![]() |
![]() ![]()
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/" ![]() 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: 352 Pomógł: 53 Dołączył: 10.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
hmmm. ciekawostka u mnie działa oO jak przepisałem, żeby user zamieniał na ~user :/ i bez względu na to czy odwołam się do /user czy do /~user działa oO
htaccess wsadziłem tylko do katalogu głównego |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 1 Dołączył: 9.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
Działa tylko, że jeśli wchodzisz na "~user/" to w przeglądarce masz taki właśnie adres.
Poza tym sprawdzałem to na logowaniu się. Jeśli loguje się na stronie "user/", a potem przechodzę na stronę "~user/" to wtedy nie jestem zalogowany i muszę się ponownie logować. Jeśli się wyloguje z jednego z tych adresów to na drugim adresie wciąż jestem zalogowany! ![]() Tak więc chcę tego uniknąć. Ten post edytował mxm 15.10.2009, 18:15:07 |
|
|
![]() ![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 352 Pomógł: 53 Dołączył: 10.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
a to co? session_destroy() Ci nie działa?
![]() usuń cookie i session i będzie git poza tym tego nie unikniesz. musiałbyś katalog ~user przenieść na domena.pl/user wtedy na pewno tyldy nie będziesz miał Ten post edytował jmail 15.10.2009, 18:50:50 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 1 Dołączył: 9.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
Z sesjami jest ok
![]() ![]() Chciałem wyjaśnić dla ścisłości, że z obu tych adresów można się logować, ale są to dwie niezależne sesje ![]() A co do przenosin do katalogu "domena.pl/user" nie ma mowy. Myślałem, że da się zrobić jakieś przekierowanie w Apache'u... Może ktoś ma jakiś pomysł? Ten post edytował mxm 15.10.2009, 19:05:05 |
|
|
![]() ![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 352 Pomógł: 53 Dołączył: 10.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
no ale pomyśl
![]() ![]() |
|
|
![]() ![]()
Post
#7
|
|
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 ![]() 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 ![]() 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ś ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 15:45 |