Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pomoc z regułkami .htaccess
Forum PHP.pl > Forum > Serwery WWW
kam821
Witajcie smile.gif
Mam problem z napisaniem paru regułek do htaccessa, za cholerę mi to wyjść nie chce, oto co mają one robić:
- Przekierować na xx.html w przypadku, kiedy ktoś pyta o xx.htm lub xx.php, nawet pliki, np. (http://adres.pl/kategoria/cos.php -> http://adres.pl/kategoria/cos.html)
- Przekierować na adres bez / na końcu, w przypadku, kiedy ktoś pyta o coś, co ma na końcu rozszerzenie, niezależnie czy to plik, czy nie, np. (http://adres.pl/kategoria/cos.html/ -> http://adres.pl/kategoria/cos.html)
- Teraz odwrotnie od poprzedniej reguły, jeśli ktoś pyta o coś bez roszerzenia, np. o kategorie i na końcu nie wystąpi /, to ma przekierować na adres z / na końcu, np. (http://adres.pl/kategoria -> http://adres.pl/kategoria/)

Z góry dziękuję za pomoc.
erix
No ok, a pokaż, co zrobiłeś?
kam821
Kod
RewriteRule ^(.*)\.(php|htm)(\?.*)?$  $1.html  [L,R=301,QSA]
RewriteRule ^(.*)\.([a-z0-9]{2,5})/(\?.*)?$  $1.$2  [L,R=301,QSA]

Tyle co do pierwszej i drugiej reguły, dalej pomysłów nie mam smile.gif
Problemem jest to, że w przypadku drugiej reguły źle zostają rozpoznane np. kategorie, w których jest kropka smile.gif
erix
No ok, ale w której części wzorca kropka występuje? Jeśli przed ukośnikiem, to ją uwzględnij po prostu w liście znaków. Na razie masz tylko litery i cyfry, dodaj ją tam. winksmiley.jpg
kam821
Nie to o chodziło smile.gif
W tym przypadku dział powinien być traktowany jak katalog, a więc z / na końcu, a tutaj, dzięki temu, że w adresie działu jest kropka, adres zostanie rozpoznany jako coś z rozszerzeniem, więc zostanie z niego usunięty slash z końca, a tego bym nie chciał, ewentualnie zrobić 2 regułki robiące to samo, jedną dla plików, które istnieją, drugą dla .php/.htm/.html, co o tym myślisz ?
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.