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
_olo_1984
post
Post #2





Grupa: Zarejestrowani
Postów: 289
Pomógł: 77
Dołączył: 5.08.2006

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


może pomoże Ci metoda, którą ja stosuje. Generalnie do tworzenia linków mam funkcję np.
get_link((string)$module, (string)$action, (int)$param); przykład:
get_link('forum',NULL,NULL);
funkcja to zwykła podmiana danych działająca na zasadzie:
  1. <?php
  2. get_link((string)$module, (string)$action, (int)$param)
  3. {
  4. if(...) // jakaś walidacja, sprawdzanie warunków itp ...
  5. ...
  6. $str = 'http://'.$_SERVER['HTTP_HOST'].'/'.$module; // powiedzmy że tylko zmienna $module przyjeła jakaś wartość
  7. return $str
  8. }
  9. ?>

a w htaccess
Kod
RewriteRule ^([a-zA-Z]+)/([a-zA-Z]+)/([0-9]+)$ index.php?module=$1&action=$2&arg=$3 [L]
RewriteRule ^([a-zA-Z]+)/([a-zA-Z]+)$ index.php?module=$1&action=$2 [L]
RewriteRule ^([a-zA-Z]+)$ index.php?module=$1 [L]


generalnie próbowałem wzorować się na symfony, jak na moje potrzeby to się sprawdza, może Tobie się przyda, pozdr
Go to the top of the page
+Quote Post
Fifi209
post
Post #3





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

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


Cytat(_olo_1984 @ 13.07.2009, 16:11:12 ) *
może pomoże Ci metoda, którą ja stosuje. Generalnie do tworzenia linków mam funkcję np.
get_link((string)$module, (string)$action, (int)$param); przykład:
get_link('forum',NULL,NULL);
funkcja to zwykła podmiana danych działająca na zasadzie:
  1. <?php
  2. get_link((string)$module, (string)$action, (int)$param)
  3. {
  4. if(...) // jakaś walidacja, sprawdzanie warunków itp ...
  5. ...
  6. $str = 'http://'.$_SERVER['HTTP_HOST'].'/'.$module; // powiedzmy że tylko zmienna $module przyjeła jakaś wartość
  7. return $str
  8. }
  9. ?>

a w htaccess
Kod
RewriteRule ^([a-zA-Z]+)/([a-zA-Z]+)/([0-9]+)$ index.php?module=$1&action=$2&arg=$3 [L]
RewriteRule ^([a-zA-Z]+)/([a-zA-Z]+)$ index.php?module=$1&action=$2 [L]
RewriteRule ^([a-zA-Z]+)$ index.php?module=$1 [L]


generalnie próbowałem wzorować się na symfony, jak na moje potrzeby to się sprawdza, może Tobie się przyda, pozdr


Jakbyś nie zauważył to napisałem coś równie prostego, i od razu cały szablon jadę. ;p

Chyba będę musiał jednak coś sam wymyślić, a bardzo chcę się ustrzec ajax'a bo stronę planuję na większą skalę a jak wiadomo ajax ma być dodatkiem a nie podstawą strony. (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) (a zawsze ktoś js może mieć wyłączone)
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: 6.10.2025 - 12:32