Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zasymulowanie mod_userdir za pomoca mod_rewrite
Forum PHP.pl > Forum > Serwery WWW > Apache
lukaswoj
Witam

Mam serwer, na którym userzy mają stronki serwowane za pomocą "mod_userdir".

Chciałbym przejść z urli "http://serwer.pl/~user" na "http://user.serwer.pl".

Samo mapowanie urli "http://user.serwer.pl" do odpowiednich katalogów to nie problem ale chciałbym aby działały jednocześnie i nowe i stare url'e.

Wymyślałem coś w stylu:

RewriteEngine on

RewriteCond %{QUERY_STRING} ^/~([^/].+)/(.+)
RewriteRule .* http://%1\.serwer\.pl/%2 [R,L]

RewriteCond %{HTTP_HOST} ^(www)?\.?(.+)\.serwer\.pl
RewriteRule ^/(.+)$ /usr/home/_www/%2/$1 [L]


no i nie dziala mi to sad.gif - mowie o url'u np: http://serwer.pl/~wojtek/index.html, ktor powinie byc przekierowany na http://wojtek.serwer.pl/index.html

help...
smile.gif

pozdrawiam
bendi
Moim zdaniem ten zewnetrzny redirect wystarczy, jezeli ktos ma na stronie linki w starym stylu to regulka zadba o to aby strona sie wyswietlala pod nowym adresem, a jezeli ktos nie ma to komu potrzebne przepisywanie- bedzie dzialac i git. Dlatego proponuje pozostawienie tylko pierwszej regulki.
Kod
RewriteEngine on

#w odroznieniu od isapi_rewrite pod iis'em tylko pierwsza czesc regulek w mod_rewrite
#pozwala na uzycie wyrazen regularnych - druga to zwykly tekst
RewriteRule ^/~(.*?)/(.+) http://$1.serwer.pl/$2 [R,L]
#nie jestem pewien co do tego ukosnika na poczatku, wiec jak nie zadziaal
#sprawdz to:
#RewriteRule ^~(.*?)/(.+) http://$1.serwer.pl/$2 [R,L]


Druga regulka proboje odtworzyc dzialanie subomeny na danym katalogu, ale to nie tedy droga, bo mod_rewrite dziala na http a nie na plikach lokalnie na dysku, wiec jedyne co mozesz to zrobic to przepisac jeden adres na drugi adres.
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.