Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: .htaccess Reguły RewriteRule, przyjazne linki pytanie ?
Forum PHP.pl > Forum > Serwery WWW > Apache
jarekhunter
Witam wszystkich.

Mam napisany plik .htaccess

Wszystko było by ok ale mam 2 podobne sytuacje i nie wiem jak negować wystąpienie jakiegoś słowa, dla przykładu..
  1. RewriteRule ^str/([0-9a-z-]+)/$ index.php?mod=str&nazwa=strona&nazwa=$1 [L]
  2. RewriteRule ^([0-9a-z-]+)/([0-9a-z-]+)/([0-9]+)/$ index.php?mod=k&n=$1&p=$2&s=$3 [L]


Jak widzicie mam 2 podobne linki.
By wyświetlić stronę mam link np. taki
str/testowa/

Ale gdy ktoś dopisze na końcu
str/testowa/2/
ładuje mi się już dział kategorii.

Jak w wyrażeniu postawić warunek że jeśli różna od np. str wtedy sprawdza dopiero questionmark.gif

Siedzę już nad tym kilka godzin i nawet google nie pomaga sad.gif
Dziękuję serdecznie za pomoc.
l3l0
A nie można jakoś tak:

  1. RewriteRule ^str/([0-9a-z-]+)/$ index.php?mod=str&nazwa=strona&nazwa=$1 [L]
  2. RewriteRule ^str/([0-9a-z-]+)/([0-9]+)/$ index.php?mod=str&nazwa=strona&nazwa=$1&id=$2 [L]
  3. RewriteRule ^([0-9a-z-]+)/([0-9a-z-]+)/([0-9]+)/$ index.php?mod=k&n=$1&p=$2&s=$3 [L]


albo

  1. RewriteRule ^str/([0-9a-z-]+)/$ index.php?mod=str&nazwa=strona&nazwa=$1 [L]
  2. RewriteRule ^str/([0-9a-z-]+)/.+$ index.php?mod=str&nazwa=strona&nazwa=$1 [L]
  3. RewriteRule ^([0-9a-z-]+)/([0-9a-z-]+)/([0-9]+)/$ index.php?mod=k&n=$1&p=$2&s=$3 [L]
jarekhunter
Wykorzystałem tą regułę .
  1. RewriteRule ^str/([0-9a-z-]+)/.+$ index.php?mod=str&nazwa=strona&nazwa=$1 [L]


Pomogła tyle że mam na końcu daną wartość którą prowadziłem. nie można było zrobić tego jakoś tak żeby nie przyjmował tej wartości questionmark.gif
np. w kategorii dać negacje czy coś w tym stylu, a gdy nie znajdzie mi danej strony, to wyświetli się strona błędu obsłużona przez mój cms.

Czy istnieje taka możliwość questionmark.gif
Chciałbym by nie można było dopisywać śmieci na końcu ponieważ można zrobić coś takiego.
str/testowa/xxx/

i w moim przypadku będzie to znaczyło co str/testowa/ ale jednak widnieje w linku nazwa której mój skrypt nie sprawdza, chce by takiej możliwości nie było..

Napisz mi jeszcze co oznacza .+$
. = znak specjalny, czyli jeśli się nie mylę wymagana jakaś nazwa ? dobrze myślę questionmark.gif
Rude Dude
Aby nie przyjmowało ci tego xxx/ na końcu musisz usunąć .+ (. oznacza dowolny znak a + że ma występować co najmniej raz lub więcej dlatego przyjmuje ci to xxx/)

Powinno być tak:
Kod
RewriteRule ^str/([0-9a-z-]+)/$ index.php?mod=str&nazwa=strona&nazwa=$1 [L]
jarekhunter
O to mi chodziło.

Dziękuję daję +
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.