Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Cutenews i mode rewrite
Forum PHP.pl > Forum > PHP
felixk
Witam,
mam taki oto być może prozaiczny, ale dla póki co nie do przejścia, problem. Otóż używam systemu newsego cutenews i napisałem do niego kod generujący przyjazne linki. Niby wszystko działa, ale gdy chce wyświetlić pełną treść newsa wyrzuca mi komunikat o błędnym adresie strony. Krótkie treści newsów wyświetlają się poprawnie natomiast problem występuje przy wyświetleniu pełnej wersji newsa. Poniżej kod plików obsługujących poszczególne działanie

Kod PHP wpisany w cutenews odpowiadający za generowanie linków:
  1. $txt = "";
  2.  
  3. $ptytul = strtr(trim(strtolower($news_arr[2])), "ąćęłń󜼿ˇĆĘŁŃÓŚŹŻ :.-\",()!?śąĽˇŚŹ/", "acelnoszzACELNOSZZ----------sazSAZ-");
  4.  
  5. $arr_ptytul = explode("-", $ptytul);
  6.  
  7. for ($rr=0;$rr<count($arr_ptytul);$rr++) {
  8.  
  9. if ((strlen($arr_ptytul[$rr]) >= 4) && (strlen($txt) < 40)) {
  10.  
  11. if (($rr > 0) && (strlen($txt) > 0)) { $txt .= "-".$arr_ptytul[$rr]; }else { $txt .= $arr_ptytul[$rr]; }
  12.  
  13. }
  14.  
  15. }
  16.  
  17. $tytul = $txt.",".$news_arr[0].",".$news_arr[6].".htm";


Kod zamieniący [full-link] w link do pełnej wersji

  1. $output = str_replace("[full-link]","<a href=\"$tytul\">", $output);


Zawartość htaccess, który przepisuje reguły

RewriteRule ^(.+),([0-9]+),arch([0-9]+).htm$ index2.php?subaction=showfull&id=$2&archive=$3&ucat=$4 [L]
RewriteRule ^(.+),([0-9]+),([0-9]+).htm$ index2.php?subaction=showfull&id=$2&archive=&start_from=&ucat=$4 [L]

W chwili gdy klikam na link do pełnej wersji otrzymuje komunikat generowany, ze skryptu o niepoprawnym adresie. Linki na stronie tworzone są przez poniższy kod

  1. $strona=$_GET["strona"];
  2.  
  3. if(!isset($strona)) {
  4. echo " Adres strony nieprawdłowy. SprawdĽ adres i spróbuj ponownie.";
  5. }
  6. else if
  7. (is_file("$strona.php")) {
  8. include "$strona.php";
  9.  
  10. }


wie ktoś co i jak poprawić questionmark.gif Z góry dziękuję
L0rd
a w .htaccess masz :

Kod
Options +FollowSymLinks
RewriteEngine on

?
felixk
Mój cały .htaccess

RewriteEngine On
RewriteBase /

RewriteRule ^(.+),([0-9]+),([0-9]+).htm$ index2.php?subaction=showfull&id=$2&archive=&start_from=&ucat=$4
RewriteRule ^(.+),([0-9]+),arch([0-9]+).htm$ index2.php?subaction=showfull&id=$2&archive=$3&ucat=$4

RewriteRule ^index([^-]*).html$ index.php
RewriteRule ^archiwum([^-]*).htm$ index2.php?strona=archiwum
RewriteRule ^glowna([^-]*).htm$ index2.php?strona=glowna
RewriteRule ^polska_europa([^-]*).htm$ index2.php?strona=polska_europa
RewriteRule ^siec_rcie([^-]*).htm$ index2.php?strona=siec_rcie
RewriteRule ^polska_prezydencja([^-]*).htm$ index2.php?strona=polska_prezydencja
RewriteRule ^galeria([^-]*).htm$ index2.php?strona=galeria
RewriteRule ^linki([^-]*).htm$ index2.php?strona=linki [L]
cojack
Ehh a gdzie znak ucieczki przed kropkami w .htaccess?

Przykład:

Kod
RewriteRule ^supe_kuper_news\.htm$ beznadziejny_news.php
felixk
Cytat(cojack @ 10.10.2009, 16:43:49 ) *
Ehh a gdzie znak ucieczki przed kropkami w .htaccess?

Przykład:

Kod
RewriteRule ^supe_kuper_news\.htm$ beznadziejny_news.php


To nie w tym tkwi błąd nadal mam ten sam komunikat. Poza tym nie działają tylko dwie pierwsze reguły, reszta śmiga
cojack
Bo jak ma działać, jak się numeruję od 1 a Ty zaczynasz od 2 a tu nagle 4 ni stąd ni zowąd.

Kod
RewriteRule ^(.+),([0-9]+),([0-9]+)\.htm$ index2.php?subaction=showfull&id=$1&archive=$2&start_from=&ucat=$3
RewriteRule ^(.+),([0-9]+),arch([0-9]+)\.htm$ index2.php?subaction=showfull&id=$1&archive=$2&ucat=$3



@edit
  1. for ($rr=0;$rr<count($arr_ptytul);$rr++) {


błąd logiczny, powinno być:

  1. $n = count($arr_ptytul);
  2. for ($rr=0; $rr < $n; $rr++) {


Imo pasuje dorzucić DirecotryIndex: ale Ty masz tak pokręcone to że nawet nie wiem na co dodać ^^, baw się.
felixk
Cytat(cojack @ 10.10.2009, 16:55:45 ) *
Bo jak ma działać, jak się numeruję od 1 a Ty zaczynasz od 2 a tu nagle 4 ni stąd ni zowąd.

Kod
RewriteRule ^(.+),([0-9]+),([0-9]+)\.htm$ index2.php?subaction=showfull&id=$1&archive=$2&start_from=&ucat=$3
RewriteRule ^(.+),([0-9]+),arch([0-9]+)\.htm$ index2.php?subaction=showfull&id=$1&archive=$2&ucat=$3


Niestety mam dalej to samo linki generowane są jak trzeba tyle, że znów mamy błąd o braku strony; przykładowy link: http://10.1.209.50/test,1252789418,4.htm
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.