PHP / HTML - przekierowanie w menu


(d1812) #1

Witam,
mam problem z nawigacją na odziedziczonej stronie. Mam katalog główny, w którym mam plik menu.php oraz index.php. W podkatalogu mam podział na lata i w nich strony w php. Jak klikam na link w menu to przenosi mnie do poprawnej strony, po ponownym kliknięciu w menu link dokleja mi się do już istniejącego adresu i mam 404. Proszę o pomoc. Nie wiem nawet o co zapytać googla.

  1. pierwsze kliknięcie w menu: localhost/a/b/c.php
  2. drugie kliknięcie localhost/a/b/c.php/a/d/f.php

kod menu jest w HTML:

<li class="parent item27"><a href="a/b/c.php"><span>C</span></a></li>
<li class="parent item27"><a href="a/d/f.php"><span>f</span></a></li>

(Fizyda) #2

Musisz mieć linki bezpośrednie a nie relatywne.

href=“a/b/c.php” to link relatywny (względny) względem obecnej lokalizacji, stąd to “doklejanie”

Jeśli chcesz mieć bezpośrednie (bezwzględny) potrzebujesz coś takiego: href=“http://domena.pl/a/b/c.php”. Możesz podać to na sztywno, albo dynamicznie poprzez stworzenie jakiejś funkcji która będzie Ci taki adres bezpośredni generowała.

Do utworzenia takiej funkcji generującej adres bezpośredni przydatne będą informacje z tej strony: http://php.net/manual/en/reserved.variables.server.php
zwłaszcza wartości: REMOTE_HOST lub SERVER_NAME i HTTPS


(d1812) #3

Tak właśnie myślałem, ale liczyłem po ciuchu, że ktoś zna magiczny trik z serwerem php który załatwi sprawę. Dzięki za odpowiedź.


(jaredj) #4

Nie jestem pewien czy dodanie / na początku linku nie załatwi sprawy. Ustawianie linków na sztywno do serwera nie jest dobrym rozwiązaniem. Czy to dzieje się w każdej przeglądarce i na każdym kompie?


(d1812) #5

rozwiązałem problem za pomocą $_SERVER[‘SERVER_NAME’]; na tej podstawie buduję ścieżki i działa