Mam nadzieję, że piszę w odpowiednim miejscu
Mam pewien problem związany z ustawieniami w .htaccess.
2 dni temu umieściłam stronę na serwerze i przez kilka godzin kombinowałam na różne sposoby z podstronami - najpierw próbowałam zamienić podstrony z rozszerzeniem .php na takie bez rozszerzenia, a później jednak na takie z rozszerzeniem .html. Udało się, ale pojawił się problem - wszystkie podstrony wyświetlają się zarówno z rozszerzeniem .html i .php, jak i bez żadnego rozszerzenia albo ze slashem na końcu. Czy mogą mieć na to wpływ jakieś wcześniejsze ustawienia, które były w .htaccess, ale je skasowałam? Tak jak mówiłam - wcześniej miałam przez moment ustawione, żeby podstrony wyświetlały się bez rozszerzenia i wygląda to tak, jakby serwer nadal je pamiętał (albo to zbieg okoliczności i problem wynika z czegoś innego).
Plik wygląda aktualnie w ten sposób:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteRule ^(.*)$ http://www.domena.pl/$1 [L,R=301]
RewriteCond %{REQUEST_URI} ^\/index.php$
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)$ http://domena.pl/ [L,R=301]
RewriteRule ^(.*)\.html$ $1.php [L]
ErrorDocument 404 http://www.domena.pl/404.html
Czy jest tu jakiś błąd, przez który serwer błędnie interpretuje .htaccess?
Próbowałam też dodać przekierowania z dawnych adresów podstron na nowe, np. z http://www.domena.pl/grafika.php na http://www.domena.pl/projekty-graficzne.html ale żadne zmiany się nie pojawiły, tak jakby serwer w ogóle ich nie widział.
Chciałabym też wprowadzić takie ustawienia, żeby po wpisaniu adresów z .php na końcu, automatycznie przekierowało je na te z .html, ale tego też serwer nie wyłapuje.
Póki co dowiedziałam się tyle, że błąd może tkwić w tym fragmencie:
RewriteCond %{REQUEST_URI} ^\/index.php$
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)$ http://domena.pl/ [L,R=301]
Próbowałam zmienić kolejność reguł, ale to też nic nie dało.
Poeksperymentowałam też trochę i po kolei wyrzucałam z .htaccess poszczególne reguły. Efekt był taki, że po usunięciu:
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteRule ^(.*)$ http://www.domena.pl/$1 [L,R=301]
podstrony nadal otwierały się bez rozszerzenia, tak samo po usunięciu:
RewriteCond %{REQUEST_URI} ^\/index.php$
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)$ http://domena.pl/ [L,R=301]
i obu tych reguł jednocześnie.
Co dziwniejsze, nawet po usunięciu z serwera całego .htaccess podstrony nadal otwierały się bez rozszerzenia (z rozszerzeniem .html już nie). Czy to może oznaczać że coś jest nie tak po stronie samego serwera?
Będę bardzo wdzięczna za jakąkolwiek pomoc, bo nie znam się na tym na tyle, żeby wyłapać jakieś błędy, mimo że od jakiegoś czasu czytam na ten temat wszystko co wpadnie mi w ręce. Widocznie jednak coś pominęłam.
Pozdrawiam.













