Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mod_rewrite] polskie znaki
Forum PHP.pl > Forum > PHP
Lejto
Jak przekazać w mod_rewrite link z polskimi znakami zwykłe ([a-zA-Z]+) nie starcza, jak to rozwiązać?

Pozdrawiam
tehaha
wydaje mi się, że linki nie powinny zawierać polskich znaków
Lejto
dzięki za szybką odpowiedź, chodzi mi tu o tagi, jak np. jest tu: http://www.ekino.tv/tag,%C5%9Bmierci.html
tehaha
no ja osobiście zawsze zamieniam litery ze znakami diakrytycznymi na zwykłe, ale jeżeli bardzo zależy Ci na zachowaniu dokładnego znaczenia to może lepiej użyć encje?

edit// teraz spojrzałem na jeden serwis i widzę, że jednak użyłem polskie litery:), w htaccess użyłem chyba tego: ([^-]*)
pedro84
Tutaj znajdziesz dużo informacji.
Lejto
a jak napisać regułę do takiego linku:
film/agent-z-przypadku--dak-miu-mai-shing,12917
zrobiłem tak:
[APACHE] pobierz, plaintext
  1. RewriteRule ^film/([^-]*),([0-9]+)$ index.php?page=film&id=$2 [L]
[APACHE] pobierz, plaintext

ale nie działa sad.gif
motyl-pl
Dam Ci mój przykład który działa obczaj go sobie
Kod
RewriteRule ^([-_!~,;*'()$a-zA-Z0-9]+)-p([^-]+)-([^-]+)\.html$ ?page=podkategoria&nazwa=$1&id=$2&strona=$3 [L]


U Ciebie powinno być:
Kod
RewriteRule ^film/([^-]*),([0-9]+)$ index.php?page=film&nazwa=$1&id=$2 [L]
Lejto
niestety nie działa ;/
tehaha
możliwe, że w złym miejscu to wstawiłeś flaga [L] oznacza, że jak mod rewrite już dopasuje to już nie dokonuje innego porównania, więc jeżeli masz jeszcze prostszą formę takiego linku to daj ją niżej w pliku htaccess
Lejto
działało, ale potem coś przestało
mój cały kod
[APACHE] pobierz, plaintext
  1. RewriteEngine On
  2. RewriteRule ^index/$ index.php
  3. RewriteRule ^film/([^-]*),([0-9]+)$ index.php?page=film&nazwa=$1&id=$2
  4. RewriteRule ^([a-zA-Z]+)$ index.php?page=$1 [L]
  5. RewriteRule ^([a-zA-Z]+)/([a-zA-Z]+),([0-9]+)$ index.php?page=$1&p=$2&p2=$3 [L]
  6. RewriteRule ^([a-zA-Z]+)/([0-9]+)$ index.php?page=$1&id=$2 [L]
  7. RewriteRule ^tag/([^-]*)$ index.php?page=tags&tag=$1 [L]
  8. RewriteRule ^categories/([a-zA-Z]+),([0-9]+)$ index.php?page=categories&cat=$2 [L]
  9. RewriteRule ^categories/([a-zA-Z]+)([-\ ]+)([a-zA-Z]+),([0-9]+)$ index.php?page=categories&cat=$2 [L]
  10. RewriteRule ^konto\/([a-zA-Z]+)$ index.php?page=konto&k=$1 [L]
[APACHE] pobierz, plaintext





tehaha
wydaje mi się, że problem leży w zbyt dużym podobieństwie tych 2 reguł:
  1. RewriteRule ^film/([^-]*),([0-9]+)$ index.php?page=film&nazwa=$1&id=$2
  2.  
  3. RewriteRule ^([a-zA-Z]+)/([a-zA-Z]+),([0-9]+)$ index.php?page=$1&p=$2&p2=$3 [L]


1. zostaw tam tą flagę [L]
2. najlepiej jakbyś nie wysyłał wszystkiego do pliku index.php bo inaczej to musisz pozmieniać konstrukcje tych linków bo tak samo wyglądają i mod_rewrite się w tym gubi bo do jednego linku pasuje więcej niż jedna regułka
Lejto
wywaliłem wszystkie reguły i zostawiłem tylko to jedno i tak nic sad.gif
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.