Problem z mod rewrite i znakiem slash |
Problem z mod rewrite i znakiem slash |
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?? Pozdrawiam ZiemoT |
|
|
Wersja Lo-Fi | Aktualny czas: 25.04.2024 - 07:21 |