![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 304 Pomógł: 0 Dołączył: 12.12.2006 Skąd: Pszów Ostrzeżenie: (0%) ![]() ![]() |
Witam
Ostatnio poproszono mnie o zrobienie systemu Przyjaznych linków w CMSie. Zrobiłem to tak jak ja to sobie wyobraziłem, ale nie wiem czy jest to zrobione poprawnie. Tzn działać działa, tylko czy poprawnym sposobem to zrobiłem. Oto strona na której zrobiłem te przyjazne linki: www.aiononline.home.pl w cmsie można dodawać artykuły itp...no i są do nich tworzone linki np: http://www.aiononline.home.pl/index.php?teksty=41 Wyświetla wybrany artykuł. Po dodaniu przyjaznych linków można się dostać do artykułu przez link: http://www.aiononline.home.pl/cryengine.php Jak to działa? Otóż w główny katalogu są tworzone pliki o takich nazwach jak tytuł artykuły. Oczywiście bez polskich i znaków specjalnych. Ten plik posiada tylko odwołania do plików z szkieletami strony. Czyli łączy wszystkie części indexu no i dodaje art. Pliki są bardzo mało, no ale niestety minusem tej metody jest to że w katalogu głównym tworzy się sporo plików... Czy macie jakiś lepszy pomysł jak lepiej rozwiązać problem przyjaznych linków? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 657 Pomógł: 125 Dołączył: 29.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ja to robię tak:
.htaccess: Kod RewriteEngine on RewriteCond $1 !^(index\.php|uploads|robots\.txt|cms) # <- tutaj pliki ktore sie nie liczą RewriteRule ^(.*)$ /index.php/$1 [L] A w index.php mniej więcej coś takiego (pisane od ręki): Kod $path = $_SERVER['PATH_INFO']; $path = explode('/',$path); foreach($path as $segment){ if(!empty($segment)) $path[] = $segment; } oczywiście do tego dochodzi sprawdzenie znaków (dozwalam tylko A-Z a-z 0-9 +-_ ) Takie rozwiązanie jest najelastyczniejsze, bo nie musimy sie martwić ograniczeniami mod_rewrite... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 09:20 |