![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 60 Pomógł: 9 Dołączył: 29.11.2010 Skąd: T Ostrzeżenie: (0%) ![]() ![]() |
Mam oto taki pliczek htaccess
Kod RewriteEngine on Options -Indexes DirectoryIndex index.php meintance.php RewriteBase /public/ RewriteRule ^([a-z]+)/([0-9]+)/?$ $1.php?id=$2 [L] RewriteRule ^([a-z]+)/?$ $1.php [L] RewriteRule ^$ index.php [L] Wszystko działa poprawnie z jednym wyjątkiem. Mam wrażenie że serwer jako taki bazowy adres przechwytuje nie katalog z ustawień serwera w którym się strona znajduje a następnie katalog "public" jak to zostało ujęte w htacces i następnie kolejne argumenty i to przepisuje, ale bazą dla serwera jest adres do ostatniego slasha z poprzedniego odwołania. Nie potrafię sobie z tym poradzić. Dla przykładu. Mamy odnośnik na stronie href="test". Oglądając dowolną stronę, przykładowo localhost/dowolna, po kliknięciu w link jesteśmy odpowiednio przekierowywani. Jeżeli jednak oglądam stronę localhost/dowolna/123 po kliknięciu w ten sam link zostaję przekierowany do localhost/dowolna/test zamiast tak jak było to w przykładzie pierwszym. Ten post edytował Geston 9.04.2014, 11:49:30 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli dopisuje ci adres strony z linku do aktualnej strony to wina samego linku.
Jesteś na localhost/lorem/ipsum a chcesz wejśc na localhost/aaa to link href=/aaa |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 60 Pomógł: 9 Dołączył: 29.11.2010 Skąd: T Ostrzeżenie: (0%) ![]() ![]() |
Obawiam się że problem jest jednak jakiś inny dziwny.
Mając kilka linków o identycznej konstrukcji: href="index" href="rules" href="register" href="login" Czyli semantycznie nie różnią się zupełnie niczym, klikając na nie przenosi mnie do odpowiednich stron i wszystko jest ok, w pasku adresu widzę kolejno: localhost/index localhost/rules localhost/login ale... localhost/register/ Tego nie rozumiem że tylko dla tego jednego linku dodaje ukośnik na końcu. Jedyna różnica to długość stringów, możliwe że serwer oprócz nawet pełnego linku localhost//public/register.php widzi coś więcej z przodu i przez długość linku jest problem? Przewaliłem teraz .htaccess do katalogu public i ustawiłem directory root na ten sam katalog, oczywiście w .htaccess też RewriteBase zmieniłem na sam / (slash). Po tej akcji nie dodaje mi już do żadnego z linków z menu slasha na końcu, wszystko działa super do momentu aż odwołuje się do strony z dodatkowym parametrem jak np localhost/event/4. Not found... Gdzie link powinien być zamieniony na event.php?id=4. Owy plik istnieje a mimo to... Możliwe są jakieś krzywe jazdy w konfiguracji serwera? 1. localhost/event działa 2. localhost/event/ też działa 3. localhost/event/4 już nie działa... 4. localhost/event/4/ działa... Skoro opcja 1 działa bez slasha na końcu to czemu nie działa opcja 3 bez slasha :/ No i dalej do póki biegam po głównych podstronach bez parametrów wszystko gra, w momencie gdy po jakimś linku pojawi sięslash localhost/event/ to po wybraniu opcji href="login", która bez slasha była interpretowana jak localhost/login, to w tym przypadku dostaje localhost/event/login, tak jakby base url to już nie był localhost... tylko localhost/event/... Jeżeli mogę prosić żeby ktoś rzucił jeszcze okiem to byłbym wdzięczny, już tydzień przeszukiwania różnych for, artykułów i nic, jakby to był jakiś wyjątkowy problem. Może szukam nie tam gdzie powinienem, dodam każde informacje których może brakować. W skrócie jeszcze raz, wygląda to tak, jakby RewriteBase nie dopisywało do localhosta tego co jest w nim zdefiniowane, czyli jak mam "RewriteBase /strona/" to po kliknięciu w link nie otrzymuję zawsze localhost/strona/example, tylko w momencie gdy pojawiły się w url dodatkowe parametry, jak localhost/strona/example/82, to wygląda to tak jakby RewriteBase zostało nadpisane (?!) na "RewriteBase /strona/example/"... Czyli od momentu wywołania dowolnego adresu gdzie pojawia się trzeci slash po localhost... Rozkładam ręce... |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 27.06.2025 - 00:01 |