Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wildcard i użytkownicy
Forum PHP.pl > Forum > Serwery WWW
weogrim
Witam.

Wiem, że piszę n-ty wątek, na temat wildcard i subdomen dla userów, ale nie znalazłem odpowiedzi na moje pytanie.

W pliku .htaccess mam taki kod: 

Kod
RewriteEngine On

#usunięcie www
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

#domena dla usera
RewriteCond %{HTTP_HOST} !^bleach\.com.pl [NC]
RewriteCond %{HTTP_HOST} ^((www\.)?([a-zA-Z0-9]+)\.)bleach\.com\.pl
RewriteRule .? http://bleach.com.pl/user/profile.php?lookup=%3 [L]


Wszytko ładnie i pięknie, gdy user wchodzi na user.bleach.com.pl zostaje przekierowany na bleach.com.pl/user/profile.php?lookup=user.

No właśnie, a ja chciałbym, żeby po przekierowaniu domena nadal wyglądała tak:

user.bleach.com.pl -> user.domena.com/proflie/ (ale żeby serwer widział to jako bleach.com.pl/user/profile.php?lookup=user)

I jeszcze, jak ktoś by mógł naprowadzić mnie na coś takiego:

Jeśli user wejdzie na:

user.bleach.com.pl/fanart/500/ -> user.bleach.com.pl/fanart/500/ (to w pasku adresu widoczne dla usera, ale serwer widzi to jako bleach.com.pl/user/fanart.php?lookup=user&id=500)

Głównie prosił bym o pomoc z tym maskowaniem adresu, bo nigdzie nie mogę tego znaleźć. W innych kodach z forum, albo otrzymuje 404, albo 500, albo działają tak jak ten mój.

PS. A co jeśli chodzi o duże litery w nazwach userów. Bo teraz jak popatrzyłem i wejdę na UsEr.bleach.com.pl to zostaje przekierowany na http://bleach.com.pl/user/profile.php?lookup=user.

marcinpruciak
Może zrób to w inny sposób. Zamiast przekierowywać z user.bleach.com.pl na bleach.com.pl/user/profile.php?lookup=user. To użyj wyrażeń regularnych i wyciągnij samo user z adresu, zapisz sobie do sesji i wczytaj później w user.bleach.com.pl/user/profile.php.

Wg mnie dużo prostsze rozwiązanie

weogrim
Zależało by mi jednak aby zrobić to za pomocą .htaccess.
vokiel
Może (podkreślam, może, bo nie sprawdzałem i nie mam pewności)
Kod
RewriteEngine On

#usunięcie www
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

#domena dla usera
RewriteCond %{HTTP_HOST} !^bleach\.com.pl [NC]
RewriteCond %{HTTP_HOST} ^((www\.)?([a-zA-Z0-9]+)\.)bleach\.com\.pl [NC]
RewriteRule ^(.*) /user/profile.php?lookup=%3 [L,QSA]


weogrim
Dzięki za pomoc, ale wyskakuje:

Kod
500 Internal Server Error


i nie wiem co z tym zrobić.
erix
Cytat
Może (podkreślam, może, bo nie sprawdzałem i nie mam pewności)

Tak, chodzi o pominięcie protokołu i hosta przy podawaniu podstawnika, aby nie przekierowywało.

Cytat
i nie wiem co z tym zrobić.

Strzelam, że nie ma zmiennej %3; eksperymentuj ze zmniejszaniem liczby.
weogrim
To samo jest przy %1, %2, %3, %4.
erix
A na pewno skrypt, do którego się odwołujesz, istnieje?

Zerknij jeszcze do dzienników Apache, czy też podglądu zdarzeń.
weogrim
Tak skrypt istnieje na pewno. A gdzie znajdę dzienniki Apache tongue.gif? Mam hosting w home.pl.
erix
To najpierw przetestuj u siebie. winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.