Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> htaccess QSA i .*
metal
post
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 1.02.2007
Skąd: Sanok

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


Witam,

Robie strone wielojezyczna z przyjaznymi linkami. Linki beda zawierac rozne znaki np. cyrylice.

Zrobilem sobie htaccessa ale wywala mi blad internal serwer error 500:

  1. RewriteRule ^(.*)[\/]{0,1}$ index.php?zmienna=$1 [L,QSA,NC]


Blad jest gdy uzyje .* wraz z QSA. Pojawia sie na serwerze home.pl Niestety nie mam podgladu logow zeby sprawdzic o co kaman.

Sprawdzilem tez tego htaccessa na ovhost i stronka sie odpala ale nie laduja sie zadne pliki graficzne, style, js'y.

Jak mozna zastapic .* aby regula dzialala dla dowolnego ciagu znakow?


Spróbowalem jeszcze jednej opcji:

  1. RewriteRule ^([a-zA-Z0-9-_%)[\/]{0,1}$ index.php?module=$1 [L,QSA,NC]


URLe zapisuje w postaci %D0%9E-%D1%84%D0%B8%D1%80%D0%BC%D0%B5

Wszystko by bylo ok ale jak wywoluje dany url to wyswiwtla sie komunikat:

  1. Not Found
  2.  
  3. The requested URL /О-фирПо was not found on this server.


Zamienia link na jakies krzaczory ;/

Jak wpisze url bez htaccessa /index.php?module=%D0%9E-%D1%84%D0%B8%D1%80%D0%BC%D0%B5
dziala ok takze to cos musi byc w htaccessie nie wiem czy jakies kodowanie trzeba ustaic dla lpiku htaccess czy
dodac jakies flagi?

Ta cyrylica mnie wykonczy... ;/

Ten post edytował metal 16.07.2010, 17:47:43
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
zegarek84
post
Post #2





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


w zbiorze znaków [] to czy dany znak trzeba poprzedzić slashem zależy od kolejności wpisywania tam i znaczenia - już to miałem pisać ale w pierw wolałem znaleźć jakieś źródło na potwierdzenie tego (drugi wynik na "wyrażenia regularne")
http://www.egrafik.pl/kurs-regex-wyrazenia-regularne/
Cytat
Notka: Większość znaków specjalnych zawartych w zbiorze znaków jest automatycznie kapsułkowane do ich znaczenia dosłownego. Np. /[.]/ pasuje do . a nie do wszystkich znaków oprócz końca linii.

jednak ja dla pewności prawie zawsze poprzedzam znaki specjalne slashem choć nie zawsze - i co język zdarzają się drobne niuanse w wyrażeniach regularnych

nie chce mi się sprawdzać ale dla mnie regułka:
RewriteRule ^([^.]+)[\/]{0,1}$ index.php?module=$1 [L,QSA,NC]
znaczy tyle - całość do pierwszej kropki lub jak jej nie będzie to do końca... i dalej dla mnie bez sensu jest zapis [\/]{0,1} gdyż ze względu na zachłanność zostanie wchłonięte przez pierwszy człon a zgodnie z definicją nie musi wystąpić ( wyrażenie [\/]{0,1} jest równoznaczne [\/]? )
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 - 06:03