![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 2 Dołączył: 28.03.2003 Ostrzeżenie: (0%) ![]() ![]() |
Głowię się nad tym już drugi dzień, może ktoś zauważy coś czego ja nie widzę.
RewriteEngine on RewriteCond %{HTTP_HOST} !^www RewriteCond %{HTTP_HOST} ^(.+)$ RewriteRule ^(.*)$ http://www.%1/$1 [R=permanent,L,QSA] #^to dodaje www. jezeli go nie ma - dziala poprawnie RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{HTTP_HOST} ^www.(.+).domena.pl$ RewriteRule ^([\/0-9A-Za-z_-]*)/$ index.php?find=%1&category=$1 [L,QSA] RewriteRule ^([\/0-9A-Za-z_-]*)\.html$ index.php?find=%1&page=$1 [L,QSA] #^to juz nie do konca Według tego jak rozumiem najpierw sprawdza czy nie istnieje taki plik ani katalog i czy HTTP_HOST pasuje do wzorca. Jezeli wszystko jest true to sprawdza RewriteRule. Do tego momentu dziala dobrze. Jezeli podam adres www.domena.pl/a/b/ nie zadziala,a jezeli podam www.page1.doemna.pl/a/b/ zadziala poprawnie. Ale jeżeli dodam do tego np. linijkę: RewriteRule ^(.*)$ index.php?find=%1&bla=a$1 [L,QSA] dzieje się coś dziwnego. Nawet adresy typu domena.pl/obrazek.jpg przestają się ładować poprawnie - zamiast nich ładuje się domena.pl/index.php i co lepsze wszystko to ładuje się bez zmiennej "bla", która została ustawiona w RweriteRule. Pomijam już to, że adres www.domena.pl powinien być pomijany bo nie pasuje do wzorca. Dlaczego ta linijka całkowicie wywraca wszystko do góry nogami? Co chcę osiągnąć: www.page1.domena.pl -> index.php?find=page1 // nie dziala www.page1.domena.pl/a/b/ -> index.php?find=page1&q=a/b www.page1.domena.pl/abc.html -> index.php?find=page1&page=abc www.domena.pl -> index.php www.domena.pl/abc.html -> index.php?page=abc Z góry dziękuję za pomoc. Doszedłem do czegoś nowego czyli dlaczego to nie działa tak jak powinno: RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{HTTP_HOST} ^www.(.+).domena.pl$ RewriteRule ^([\/0-9A-Za-z_-]*)/$ index.php?find=%1&category=$1 [L,QSA] RewriteRule ^([\/0-9A-Za-z_-]*)\.html$ index.php?find=%1&page=$1 [L,QSA] <- to dziala zarowno dla www.domena.pl/kontakt.html i www.page1.domena.pl/kontakt.html Ale jak rozbiję to tak: RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{HTTP_HOST} ^www.(.+).domena.pl$ RewriteRule ^([\/0-9A-Za-z_-]*)/$ index.php?find=%1&category=$1 [L,QSA] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{HTTP_HOST} ^www.(.+).domena.pl$ RewriteRule ^([\/0-9A-Za-z_-]*)\.html$ index.php?find=%1&page=$1 [L,QSA] Działa prawidłowo... nie ma sposobu aby nie powtarzać RewriteCond za każdym razem? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.09.2025 - 19:31 |