Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: index.php/news/pokaz_news/x na /news/pokaz_news/x
Forum PHP.pl > Forum > Serwery WWW
Wicko
Witam! Cala tresc jest w sumie opisana w temacie.
Do tej pory na stronie mialem index.php/news/blabla, a chcialbym usunac z linkow index.php tak, zeby zostalo samo /news/blabla.

Z tym, że to musi być automatyczne, nie ma mowy o recznym definiowaniu.
mike
Temat Nice Url's jest dość popularny na forum.
Dodatkowo zapoznaj się z artykułem Przyjazne URLe.
Z tą wiedzą będziesz mógł rozwiązać swój problem lub pytać dalej tongue.gif
NuLL
Z ktorej zmiennej w $_SERVER korzystales do wyciagania adresu ?
chmolu
Z PATH_INFO nie da rady. Musisz skorzystać z mod_rewrite i kierować wszystkie requesty do jednego pliku (np. index.php).

Kod
RewriteEngine On
RewriteRule !^(templates|upload) index.php


Później odpowiednia działania na $_SERVER['REQUEST_URI'] i masz ładne urle winksmiley.jpg
Wicko
hm, jakie to mialyby byc dzialania?

uzywalem wlasnie PATH_INFO, i wiem ze z tym sie nie da osiagnac efektu ktorego pozadam smile.gif

natomiast z htaccess jestem dosc zielony i dlatego nie wiem czy to moze byc automatycznie

do tej pory mam wszystko automatycznie.. index.php/galeria includowal galeria.php

i chcialbym tylko wpis w .htaccess zeby /galeria zamienial na index.php..

ale nalezy zrwocic uwage ze to moze byc dluzsze, np /galeria/_kategoria_/_strona_ :/

uh.. widze ze zle to tlumacze biggrin.gif

oto moj kod odpowiedzialny za includowanie stron:

  1. <?php
  2.  
  3. $znak='/';
  4. $site = array();
  5. $strDefaultPath = $znak.'news';
  6. $x=explode($znak, $_SERVER['PATH_INFO']);
  7. if (!isset( $_SERVER['PATH_INFO'] ) || $_SERVER['PATH_INFO']=='/' || $x[1]=='styl' ) { 
  8. $_SERVER['PATH_INFO'] = $strDefaultPath; 
  9. $y=$x[2];
  10. }
  11. $site = explode( $znak, substr( $_SERVER['PATH_INFO'], 1) );
  12. // [..]
  13. if(!isset($body)) {
  14.  $strPage = str_replace( array( '..', '/' ), '', $site[0] );
  15.  if( stristr( $strPage, '://' ) !== false ) {
  16. include('FILES/php/404.php');
  17.  } else {
  18.  $strNazwaFunkcji = 'page_'. $site[0];
  19. $objPlugin = $plugin ->p[$site[0]];
  20. if(file_exists('FILES/php/'.$site[0].'.php')) {
  21. include('FILES/php/'.$site[0].'.php');
  22. } elseif ( is_callable( array( $objPlugin, $strNazwaFunkcji ) ) ) { 
  23. $plugin->p[$site[0]]->$strNazwaFunkcji();
  24. } else {
  25. include('FILES/php/404.php');
  26. }
  27. }
  28. }
  29. ?>


rozumiecie? biggrin.gif nie mam plikow galeria.php obok index.php, tylko galeria.php zmienia zawartosc w pewnym miejscu template ( %BODY% )

[ robione na podstawie arta z php.pl ;-) ]

o, powiem moze tak...

moze fajniej byloby gdyby www.domena.pl/x bylo zamieniane na www.domena.pl/index.php/x ? biggrin.gif
chmolu
Zastosowanie pliku, który podałem wyżej sprawi, że niezależnie, czy podasz:
http://site.com/artykuly
http://site.com/forum
http://site.com/news/internet

to i tak za każdym razem wywołany zostanie plik index.php. Musisz tylko wyczytać $_SERVER['REQUEST_URI'] i na jego podstawie wywołać odpowiednią stronę. Kombinuj, człowieku.
Wicko
dzieki, juz prawie rozumiem, z tym ze po zapodaniu tego .htaccess wyskakuje blad 500 ( wew. blad serwera ) ;D
Lars
Cytat(Wicko @ 2005-10-22 21:01:56)
dzieki, juz prawie rozumiem, z tym ze po zapodaniu tego .htaccess wyskakuje blad 500 ( wew. blad serwera ) ;D

serwer nie obsługuje .htaccess lub mod_rewrite tongue.gif
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.