Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mod rewrite] problem
Forum PHP.pl > Forum > Serwery WWW
Mizuk
Witam mam problem z przekierowaniem strony. 

Mam taką sytuację potrzebuję przepisać adres www.domena.pl/pl/kategoria/link-do-strony

na postać: www.domena.pl/index.php?lang=pl&r=kategoria&id=link-do-strony  



Napisałem prostą regułę:
CODE
Options FollowSymLinks

RewriteEngine On

RewriteBase ./

RewriteRule ^([a-z]{2,2})/([a-z]{0,128})/([a-z-]{0,128})$ ?lang=$1&r=$2&id=$3& [L]




I tutaj pojawia się problem. Otóż zamiast spodziewanego adresu otrzymuję:

www.domena.pl/pl/kategoria/index.php?lang=pl&r=kategoria&id=link-do-strony



Nie mogę poradzić sobie z tym problemem. Czy ktoś ma jakiś pomysł? Dodam, że wszystko chodzi na serwerach home.pl (jak się  zorientowałem mają czasami jakieś specyficzne rozwiązania. 



Pozdrawiam

Michał
elemek
potrzebujesz
Kod
RewriteBase /

(bez kropki)
kwiateusz
Kod
RewriteRule ^([a-z]{2})/([a-z]{0,128})/([a-z-]{0,128})$ index.php?lang=$1&r=$2&id=$3 [L]


indexu sie tez nie pomija winksmiley.jpg a zamiast {0,128} moglbys stosowac * chyba ze na prawde wyraz nie moze byc dluzszy niz 128 znakow winksmiley.jpg
Mizuk
Elemek... bez kropki wszystko też zachowywało się tak samo ... 

Kwiateusz ... reguły dopasowania zmieniłem na [^/]+ i też jest dobrze i krócej.. 

Jeżeli zaś chodzi o rozwiązanie problemu ... to pomogła pomoc Home.pl. Zwrócili mi uwagę na drobne przeoczenie z mojej strony i zapisywanie adresów w linkach w formie względnej (css/costam.css) zamiast bezwzględnej (/css/costam.css).

Problem rozwiązany. Dzięki za uwagi.
kmyr
Mam bardzo podobny problem... z tym, że na nazwa.pl.

Mam stronę, która nie jest w głównym kat. ftp
www.a.pl/test/

Zrobiłem wszystkie css,js na bezwzględne (jak radzi kolega wyżej), ale teraz nie czytają się - chyba, że wrzuce je do głównego katalogu.
Kombinowałem z RewriteBase. Dawałem /, /test/, /test, test/, /~test/ ale zawsze albo to samo, albo błąd 404/500.

Poza tym nadal przy takim .htaccess
Kod
Options FollowSymLinks
RewriteEngine On
RewriteBase /

RewriteRule ^(.+)$ /index.php?d=$1 [L]


wszystkie linki z www.a.pl/test/arch zamienia na www.a.pl/test/arch/?d=arch

Pomocy...

ps. Dodam tylko, że na serwerze istnieje fizyczny kat. www.a.pl/test/arch, ale nie powinno to być problemem.
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.