Mam problem z htaccessami a konkretnie z mod_rewrite
Chciałbym zrobić na swojej stronie tak jak ma wordpress
Czyli że do każda strona po sleshu np. mojastrona.pl/kontakt prowadzi do kontakt.php, a jeśli nie znajdzie tego pliku to zastosowanie ma reguła mojastrona.pl/pages.php?p=tutajzmienna
I wtedy sprawdzam sobie w bazie czy zmienna jest jak tak to wyświetlana jest podstrona jak nie to 404.
I zrobiłem taki htaccess:
Kod
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule kontakt/?$ kontakt.php [L]
RewriteRule ^(.*)/?$ pages.php?p=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule kontakt/?$ kontakt.php [L]
RewriteRule ^(.*)/?$ pages.php?p=$1 [L]
No i nie działa... Nie bardzo rozumiem bo generalnie jak usunę jakaś linijke to każda z osobna działa dobrze ale razem już nie, teoretycznie htaccess powinien po kolei robić kod i jak nie znajdzie swojego odpowiednika to jechać dalej w dół aż dopasuje...
może ktoś pomóc?
dzialam z tym problemem dalej
generalnie naprawiłem jedną rzecz (tzn. błąd rozwiązałem ale odkrył on kolejny)
a mianowicie złe wyrażenie regularne było w tej definicji powinno być:
RewriteRule ^([^.]*)/?$ pages.php?p=$1 [L]
Ale teraz mam problem z tym, że strona główna (index.php) też jest wrzucany do tego warunku pages i nie pojawias ie strona główna... czy ktoś wie jak wyłączyc taki przypadek?