Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z mod rewrite i znakiem slash
ziemot
post 28.09.2015, 23:03:35
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 14.03.2005

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


Witam,

mój problem z działaniem znaku slash w przekierowaniu jest trochę dziwny...

Na komputerze z Windowsem 7 zainstalowałem WAMPa. Ścieżka do katalogu w którym są poszczególne strony jest następująca:
c:\tools\wamp\www\serwer1
c:\tools\wamp\www\serwer2 itd.

Dla każdego z "serwerów" utworzyłem narzędziami w WAMP aliasy, tak że po wpisaniu localhost, otwiera się natywna strona domowa WAMPa i linkami można przejść do strony głównej serwera1 lub serwera2.

W katalogu głównym serwera1 (a więc ścieżka c:\tools\wamp\www\serwer1) umieściłem plik .htaccess w którym zacząłem definiować przekierowania:

Options FollowSymLinks
RewriteEngine On

RewriteRule ^lista-pozycji-bibliografii$ sys.php?id=102&sn=0 [L]
RewriteRule ^lista-pozycji-bibliografii/([^/.]+)$ sys.php?id=102&sn=$1 [L]

Kod samej strony sys.php to PHP 5.3 + Smarty + Bootstrap3
Pierwszy parametr id - to parametr wywołujący kod PHP konkretnej strony. Drugi parametr "sn" to dodatkowy parametr np. do obsługi stronicowania wyników zapytania przy pomocy LIMIT.

W kodzie HTML, w menu strony serwera1, link prowadzący do strony "lista-pozycji-bibliografii" jest opisany następująco: <a href="lista-pozycji-bibliografii">Link</a>.

Efekt takiego przekierowania jest zastanawiający - jeśli kliknę w menu strony serwera1 w link lub wpiszę w przeglądarce adres: localhost/serwer1/lista-pozycji-bibliografii, to strona wyświetla się poprawnie, poprawnie sformatowana wg styli CSS bootstrapa, wszystko ładnie wygląda.

Jeśli wpiszę dodatkowy parametr do linku: localhost/serwer1/lista-pozycji-bibliografii/10 to strona wyświetla się totalnie bez formatowania CSS, pojawiają się tylko linki tekstowe bez ich reprezentacji graficznej opisanej stylami. Dodatkowo część linków jest podmieniana na: localhost/serwer1/lista-pozycji-bibliografii/lista-pozycji-bibliografii - tak jakby doklejało drugi raz to samo przekierowanie.
Natomiast linki, które w htmlu mają adres zdefiniowany następująco: <a href="">Link2</a> w przeglądarce wyświetlają się jako linki prowadzące do localhost/serwer1/lista-pozycji-bibliografii/10.
Wartości parametrów przekazywanych przez link trafiają do tablicy $_GET, gubi się jednak gdzieś to formatowanie CSS.

Jednakże, gdy zamienię znak "/" w przekierowaniu na przecinek albo myślnik:

RewriteRule ^lista-pozycji-bibliografii-([^/.]+)$ sys.php?id=102&sn=$1 [L]

wszystko zaczyna działać poprawnie!!! Strona po wpisaniu adresu do przeglądarki: localhost/serwer1/lista-pozycji-bibliografii-10 wyświetla sie poprawnie uwzględniając formatowanie stylami CSS. Wartości parametrów przekazywanych w linku trafiają do tablicy $_GET.

W czym tkwi problem?questionmark.gif?

Pozdrawiam
ZiemoT







Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 25.04.2024 - 07:21