Temat: [.htaccess] mod_rewrite problem

Mam taki kod w pliku:


RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-zA-z\-]+)/([a-zA-Z0-9\-]+) ?m=$1&active=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-z\-]+)/([0-9\-]+) ?m=$1&pID=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-z\-]+) ?m=$1 [L]


Wiem, ze może on nie jest optymalny ale, jak usuwam RewriteCond to mi wywala error 500. Problem jest taki, że mi nie widzi tej linii, czyli w skrypcie nie reaguje na zmienną pID


RewriteRule ^([a-zA-z\-]+)/([0-9\-]+) ?m=$1&pID=$2 [L]


Jak to poprawić ?
Marcin Witek

Marcin Witek isido.pl ułatwia
pracę - polski sytem
zarządzania
projekt...

Temat: [.htaccess] mod_rewrite problem

coś tu strasznie namieszane jest...

jeśli wywoływany URL nie jest nazwą istniejącego pliku - wykonuje

RewriteRule ^([a-zA-z\-]+)/([a-zA-Z0-9\-]+) ?m=$1&active=$2 [L]

i koniec. Zakładam że URLe które wołasz nie istnieją, więc wykonuje się tylko ta linijka.

Poza tym


^([a-zA-z\-]+)/([a-zA-Z0-9\-]+)

to dla drugiego członu składającego się z cyfr to samo co

RewriteRule ^([a-zA-z\-]+)/([0-9\-]+) ?m=$1&pID=$2 [L]


Spróbuj też dać wielkie "Z" w [a-zA-Z] i zescapować "/"

Ja bym spróbował w ten deseń, bo jak przypuszczam chodzi o takie działanie mniej więcej (nie sprawdzane):

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^([a-zA-z\-]+)\/([0-9\-]+) ?m=$1&pID=$2 [L]
RewriteRule ^([a-zA-Z\-]+)\/([a-zA-Z0-9\-]+) ?m=$1&active=$2 [L]
RewriteRule ^([a-zA-Z\-]+)$ ?m=$1&active=$2 [L]


Temat: [.htaccess] mod_rewrite problem

Marcin Witek:
coś tu strasznie namieszane jest...

jeśli wywoływany URL nie jest nazwą istniejącego pliku - wykonuje

RewriteRule ^([a-zA-z\-]+)/([a-zA-Z0-9\-]+) ?m=$1&active=$2 [L]

i koniec. Zakładam że URLe które wołasz nie istnieją, więc wykonuje się tylko ta linijka.

Poza tym


^([a-zA-z\-]+)/([a-zA-Z0-9\-]+)

to dla drugiego członu składającego się z cyfr to samo co

RewriteRule ^([a-zA-z\-]+)/([0-9\-]+) ?m=$1&pID=$2 [L]


Spróbuj też dać wielkie "Z" w [a-zA-Z] i zescapować "/"

Ja bym spróbował w ten deseń, bo jak przypuszczam chodzi o takie działanie mniej więcej (nie sprawdzane):

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^([a-zA-z\-]+)\/([0-9\-]+) ?m=$1&pID=$2 [L]
RewriteRule ^([a-zA-Z\-]+)\/([a-zA-Z0-9\-]+) ?m=$1&active=$2 [L]
RewriteRule ^([a-zA-Z\-]+)$ ?m=$1&active=$2 [L]



Nie działa poprawnie, a próby zmian kończą się tym, że nie widzi albo zmiennej pID albo zmiennej active :/
Marcin Witek

Marcin Witek isido.pl ułatwia
pracę - polski sytem
zarządzania
projekt...

Temat: [.htaccess] mod_rewrite problem

sprawdziłem i mała poprawka była potrzebna jeśli url z 2 reguły zaczynał się od cyfr, to łapało pierwszą, pomogła zmiana
RewriteRule ^([a-zA-z\-]+)\/([0-9\-]+) ?m=$1&pID=$2  [L]

na
RewriteRule ^([a-zA-z\-]+)\/([0-9\-]+)$ ?m=$1&pID=$2  [L]


czyli:

wpisanie urla w postaci abc/0123 daje ?m=abc&pID=0123
wpisanie urla w postaci abc/32abc daje ?m=abc&active=32abc
i w trzecim przypadku cokolwiek daje ?m=cokolwiek&active= bo nie ma zdefiniowanego drugiego subpatterna.

JEśli coś takiego nie zadziała, to obawiam się że problem z hostingiem jakiś - bo "anahomiedziała" ;) Możesz zmienić [L] na [R,L] żeby sprawdzić co się tak naprawdę przekierowuje i gdzie.

Temat: [.htaccess] mod_rewrite problem

Marcin Witek:
sprawdziłem i mała poprawka była potrzebna jeśli url z 2 reguły zaczynał się od cyfr, to łapało pierwszą, pomogła zmiana
RewriteRule ^([a-zA-z\-]+)\/([0-9\-]+) ?m=$1&pID=$2  [L]

na
RewriteRule ^([a-zA-z\-]+)\/([0-9\-]+)$ ?m=$1&pID=$2  [L]


czyli:

wpisanie urla w postaci abc/0123 daje ?m=abc&pID=0123
wpisanie urla w postaci abc/32abc daje ?m=abc&active=32abc
i w trzecim przypadku cokolwiek daje ?m=cokolwiek&active= bo nie ma zdefiniowanego drugiego subpatterna.

JEśli coś takiego nie zadziała, to obawiam się że problem z hostingiem jakiś - bo "anahomiedziała" ;) Możesz zmienić [L] na [R,L] żeby sprawdzić co się tak naprawdę przekierowuje i gdzie.

Teraz działa poprawnie tylko, że teraz jest problem bo nie wyświetla mi styli css. Link do styli podaję pełny czyli http://adres.pl/css/style.css ale nic to nie daje :/
Paweł C.

Paweł C. plusweb.pl,
cowork.czest.pl

Temat: [.htaccess] mod_rewrite problem

Zamień
RewriteRule ^([a-zA-Z\-]+)\/([a-zA-Z0-9\-]+) ?m=$1&active=$2 [L]

na
RewriteRule ^([a-zA-Z\-]+)\/([a-zA-Z0-9\-]+)$ ?m=$1&active=$2 [L]

style zaczną działać.

Temat: [.htaccess] mod_rewrite problem

Paweł C.:
Zamień
RewriteRule ^([a-zA-Z\-]+)\/([a-zA-Z0-9\-]+) ?m=$1&active=$2 [L]

na
RewriteRule ^([a-zA-Z\-]+)\/([a-zA-Z0-9\-]+)$ ?m=$1&active=$2 [L]

style zaczną działać.

Dziękuję za pomoc. Wszystko działa

Następna dyskusja:

Problem z mod rewrite




Wyślij zaproszenie do