Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [inne][PHP]Reguły htaccess
Malinaa
post
Post #1





Grupa: Zarejestrowani
Postów: 577
Pomógł: 6
Dołączył: 21.07.2008

Ostrzeżenie: (0%)
-----


Witam,

próbuję zaznajomić się z .htacces i regułami przyjaznych linków

Mam linki:
$link_strony = 'strona.php?sid='.$id_strony;
$link_kategorie = 'kategoria.php?kid='.$id_kategorie;

teraz chciałbym zrobić je na SEO:

SEO Link dla przykładu wygląda tak: nazwa-kategoria,1.html lub nazwa-strony,1.html , gdzie nazwa strony może być tytułem artyjułu, 1 to ID Strony

w pliku .htacces wpisuje reguly:

RewriteEngine On
RewriteRule ^([-_,$a-zA-Z0-9]+),([0-9]+)\.html$ strona.php?x=$1&sid=$2 [L]
RewriteRule ^([-_,$a-zA-Z0-9]+),([0-9]+)\.html$ kategoria.php?x=kategoria&kid=$2 [L]

Jak napisać regule, aby
RewriteRule ^co_tutaj?,([0-9]+)\.html$ strona.php?sid=$1 [L] # bez x, ktore nie bylo wczesniej potrzebne, czy tak można?

Problemy:
- musialem dodać wartość x, aby strona była otwierana i nie wiem co z nim zrobić, po co mi x=$1, albo x=kategoria ?
- kolejny problem, że w ten sposób działa zawsze pierwsza reguła od góry, nie rozpoznaje pliku strona.php. czy kategoria.php , otwiera sytonę z pierwszej regułu.

Reguły dla plików:
$link_strony = 'strona.php?sid='.$id_strony;
$link_kategorie = 'kategoria.php?kid='.$id_kategorie;
kiedy przyjazny link = nazwa-strony,1.html lub nazwa-kategoria,1.html

Proszę o pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Jeśli walisz w htaccess flagę L to jeśli serwer dopasuje regułę - zakończy szukanie kolejnych, bo i L = Last, czyli jeśli reguła pasuje - zakończ tutaj działanie. A że Twoje reguły dla obu są IDENTYCZNE, to strona pasuje od razu i na tej regule kończy się działanie. Nigdy nie dojdzie do dopasowania dla kategorii. Musisz to bardziej rozróżnić. Choćby strona-jakis_ciąg,id.html i kategoria-jakis_ciag,id.html

Poza tym zawsze możesz zrobić prostsze rozwiązanie. Wystarczy, że zmienisz końcówkę adresu. Dla stron użyj html, a dla kategorii htm lub php i to już powinno wystarczyć. Pamiętaj. Jeśli problemu nie można pokonać, należy go obejść (IMG:style_emoticons/default/smile.gif)

W efekcie masz

RewriteRule ^([-_,$a-zA-Z0-9]+),([0-9]+)\.html$ strona.php?x=$1&sid=$2 [L]
RewriteRule ^([-_,$a-zA-Z0-9]+),([0-9]+)\.htm$ kategoria.php?x=kategoria&kid=$2 [L]

Zauważ, że różnica jest niemal żadna, raz jest html a raz htm, a to już dla htaccess dwa różne i tym samym problem przestał istnieć (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 15:16