Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> .htaccess Reguły RewriteRule, przyjazne linki pytanie ?
jarekhunter
post
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 21.01.2010

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


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 (IMG:style_emoticons/default/questionmark.gif)

Siedzę już nad tym kilka godzin i nawet google nie pomaga (IMG:style_emoticons/default/sad.gif)
Dziękuję serdecznie za pomoc.
Go to the top of the page
+Quote Post
l3l0
post
Post #2





Grupa: Zarejestrowani
Postów: 94
Pomógł: 16
Dołączył: 24.07.2009
Skąd: Gdańsk

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


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]


Ten post edytował l3l0 30.01.2010, 15:10:47
Go to the top of the page
+Quote Post
jarekhunter
post
Post #3





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 21.01.2010

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


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 (IMG:style_emoticons/default/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ść (IMG:style_emoticons/default/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ę (IMG:style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
Rude Dude
post
Post #4





Grupa: Zarejestrowani
Postów: 41
Pomógł: 1
Dołączył: 23.07.2007

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


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]


Ten post edytował Rude Dude 10.02.2010, 17:19:48
Go to the top of the page
+Quote Post
jarekhunter
post
Post #5





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 21.01.2010

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


O to mi chodziło.

Dziękuję daję +
Go to the top of the page
+Quote Post

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: 23.08.2025 - 07:48