Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: RewriteRule .* - obsługa od strony PHP
Forum PHP.pl > Forum > PHP
Michauuu
Cześć.
Jak obsłużyć linki w php po dodaniu RewriteRule ^.*$ index.php [NC,L] do .htaccess?
Jak się tego używa?! Czy istnieje funkcja robiąca explode z $_SERVER["REQUEST_URI"]?

Z góry ogromne podziękowania dla osoby która wyjaśni mi jak tego użyć
Radeqq
Ja używam czegoś takiego:
Strona to np: test.pl/artykul/nazwa.html
  1. $url=strip_tags(substr($_SERVER['REQUEST_URI'], 1));//obcinam 1 - bo z przodu jest /
  2. if (strlen($url)>5 && substr($url, -5)=='.html') $url=substr($url,0,-5);//usuwa końcówkę .html jeśli istnieje
  3. $k=explode('/', $url);//dzieli adres na array po '/'
  4. if (empty($k[0])) $k[0]='index';//jesli strona glowna
  5.  
  6. print_r($k);
b4rt3kk
Cytat(Michauuu @ 20.06.2013, 20:47:22 ) *
Cześć.
Jak obsłużyć linki w php po dodaniu RewriteRule ^.*$ index.php [NC,L] do .htaccess?
Jak się tego używa?! Czy istnieje funkcja robiąca explode z $_SERVER["REQUEST_URI"]?

Z góry ogromne podziękowania dla osoby która wyjaśni mi jak tego użyć


Przecież przepisujesz wszystkie adresy na index.php, co tu chcesz obsługiwać? Nie masz tu żadnych zmiennych ni nic.
Michauuu
No zastanów się: chcę, żeby index.php obsługiwał całe myślenie strony. Muszę więc jakoś pobrać adres przed rewriterule, a później sprawdzać coraz dalsze człony tego adresu.
Dzięki @Radeqq. Funkcja jest oczywiście dobra i ok. Zastanawia mnie jednak jak radzą sobie z takim rewrite wszystkie większe cmsy i czemu w żadnym nie potrafię znaleźć odpowiedniej funkcji. Tym bardziej, że większość z nich blokuje też katalog systemowy:
RewriteRule ^(_includes|_tmp).*$ index/error/deny/ [NC,L]
b4rt3kk
No to tak nie byłoby prościej?

Kod
RewriteRule ^(.*)$ index.php?wtf=$1 [NC,L]
Radeqq
Co do większych CMSów to zobacz np. Kohana 3.3.0: system/classes/Kohana/Request.php metoda detect_uri
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.