Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [.htaccess] Przyjazne linki problem
Fifi209
post
Post #1





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Piszę dla siebie stronkę internetową, postanowiłem zastosować "przyjazne linki".

Linki jakie chcę otrzymać to przykładowo http://host/akcja/ (np. http://localhost/komentarze/ )

Więc według tego napisałem coś takiego (.htaccess) :
Kod
RewriteEngine On

RewriteRule ^forum/$ forum/index.php
RewriteRule ^([A-Za-z0-9]+)/$ index.php?action=$1


I tutaj póki co wszystko dobrze działa, przekierowania są dobrze wykonywane.

Ale na stronie dodałem linki typu:

dodaj/
forum/
komentarze/

Jeżeli raz kliknę - wszystko jest ok, i adres przybiera odpowiednią wartość np. http://localhost/dodaj/

Gdy teraz (po zmianie adresu) kliknę np. na inny link dostanę coś takiego: http://localhost/dodaj/forum/ (co mnie w ogóle nie zadowala (IMG:http://forum.php.pl/style_emoticons/default/haha.gif) )

Wymyśliłem aby linki zrobić jako bezwzględne - nie podoba mi się to rozwiązanie i tutaj pytanie czy da się inaczej.

A linki bezwzględne wymyśliłem tak:
Mam jakby szablon i mam linki w postaci:
  1. <a href="#dodaj">tekst</a>


Skrypt podmienia na odpowiednią wartość czyli np.:
  1. <a href="http://localhost/dodaj/">tekst</a>


Teraz pojawił się problem, o ile ze statycznymi plikami wszystko jest ok, tak z dynamicznie generowanymi (np. newsy) nie mam pojęcia jak to pogodzić. (IMG:http://forum.php.pl/style_emoticons/default/haha.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(vonEverest @ 13.07.2009, 15:57:32 ) *
Proste - nie podkładaj linków typu <a href="/cos" (...) tylko <a href="localhost/cos/" (...)



Cytat(Puzi @ 13.07.2009, 15:58:40 ) *
Witam,
Np. Jeśli jesteś na stronie głównej to linki trzymaj w postaci takiej:
dodaj/
forum/
komentarze/
a jeśli jesteś np. na stronie dodaj to daj sobie takie linki:
../dodaj/
../forum/
../komentarze/

I powinno zadziałać.

Pozdrawiam


Toteż napisałem sobie skrypt, który tworzy linki bezwzględne. Najlepiej pokażę o co mi chodzi:

  1. <?php
  2. $host = 'http://'.$_SERVER['HTTP_HOST'].'/';
  3.    
  4.    $header = file_get_contents('sources/html/header.html');
  5.    $news = file_get_contents('sources/html/news.html');
  6.    $footer = file_get_contents('sources/html/footer.html');
  7.    $site = $header.$news.$footer;
  8.    
  9.    echo preg_replace('/href="#([a-zA-Z0-9/]+)"/', 'href="'.$host.'$1/"', $site);
  10. ?>


I działa bez problemu, a teraz $news ma być generowany dynamicznie i po prostu zgłupiałem. (IMG:http://forum.php.pl/style_emoticons/default/haha.gif)
Bawiłem się z ob_start(), ob_get_content(), ob_get_clean(), ob_end_flush() i mi jakoś nie wyszło. ;<
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: 4.10.2025 - 11:59