Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne]mod rewrite
Forum PHP.pl > Forum > Przedszkole
mrk9109
Witam otóż to moje początki w tym dla tego nie umie sobie poradzić a więc tak robie :
Kod
RewriteRule ^wywiady([^-]+).html$ indexphp?site=wywiady&akcja=zobacz&id=$1 [L]

i ustawiam potem link wywiady-$id.html .

No i mi nie działa co robie źle ?
roghatt
Kod
RewriteRule ^wywiady-([^-]+).html$ index.php?site=wywiady&akcja=zobacz&id=$1 [L]

a myślnik po "wywiady" zgubiłeś i druga sprawa nie indexphp tylko index.php
mrk9109
głupie błędy dzieki smile.gif

Mam jeszcze 1 pytanko bo cms którego używam posiada jakieś 200 linków +/- i troche to potrwa za nim bym to pozmieniał wszystko ... Czy można to jakoś w php napisać ? aby automatycznie zmieniał linki ?
gac3k
możesz próbować z wyrażeniami regularnymi i operacjami na plikach w PHP, ale to gra nie warta świeczki, tym bardziej jeżeli jesteś początkujący. Skombinuj sobie jakieś konkretne IDE (polecam Ci NetBeans) i tam masz przydatną funkcje refaktoryzacji, lub też zamieniania ciągu w całym projekcie.
mrk9109
otóż znalazłem taki moduł do tego cms`a ale problem polega na tym że moje linki które dodaje np: w news zamienia na nazwa&akcja albo domena.pl/adres.pl . Jak to naprawić o to kod ? np: chciał bym aby zamieniał tylko to co u góry mam zrobione funkcje
  1. <?php
  2. define('_MODRWRT_SEP_','/');
  3. define('_MODRWRT_ADDITIONAL_','');
  4. define('_MODRWRT_POWER_',1);
  5. function remove_pl($text) {
  6. //remove_pl by tosiek - <a href="http://tosiek.pl/" target="_blank">http://tosiek.pl/</a>
  7. $from = array(
  8. "\xc4\x85", "\xc4\x87", "\xc4\x99",
  9. "\xc5\x82", "\xc5\x84", "\xc3\xb3",
  10. "\xc5\x9b", "\xc5\xba", "\xc5\xbc",
  11. "\xc4\x84", "\xc4\x86", "\xc4\x98",
  12. "\xc5\x81", "\xc5\x83", "\xc3\x93",
  13. "\xc5\x9a", "\xc5\xb9", "\xc5\xbb",
  14. );
  15. $clear = array(
  16. "\x61", "\x63", "\x65",
  17. "\x6c", "\x6e", "\x6f",
  18. "\x73", "\x7a", "\x7a",
  19. "\x41", "\x43", "\x45",
  20. "\x4c", "\x4e", "\x4f",
  21. "\x53", "\x5a", "\x5a",
  22. );
  23. if(is_array($text)) {
  24. foreach($text as $key => $value) {
  25. $array[str_replace($from, $clear, $key)]= str_replace($from, $clear, $value);
  26. }
  27. return $array;
  28. }else {
  29. return str_replace($from, $clear, $text);
  30. }
  31. }
  32. if(_MODRWRT_POWER_ === 1) {
  33.  
  34. function makeModRwrt($input) {
  35. if(!empty($input)) {
  36. $repl = remove_pl(strtolower($input));
  37.  
  38. $i=0;
  39. $out = "";
  40. for($i=0;isset($repl[$i]);$i++) {
  41. if(preg_match('/[a-z0-9_-]/',$repl[$i])) $out .= $repl[$i];
  42. else $out .= "_";
  43. }
  44.  
  45. $repl = preg_replace("/_{2,}/","_",$out); // ERSETZT MEHRFACHE _
  46. $length = strlen($repl);
  47. if($repl[$length-1] == "_") $repl = substr($repl,0,$length-1); // KILLT _ AM ENDE
  48. if($repl[0] == "_") $repl = substr($repl,1,$length); // KILLT _ AM ANFG
  49. return $repl;
  50. }
  51. }
  52.  
  53.  
  54. function mr_title_news($input) {
  55. if(isset($input['newsID'])) {
  56. $title = mysql_fetch_array(safe_query("SELECT headline FROM ".PREFIX."news_contents WHERE newsID=".$input['newsID']));
  57. return $title['headline'];
  58. }
  59. }
  60.  
  61. function mr_title_topic($input) {
  62. if(isset($input['topic'])) {
  63. $topicID = $input['topic'];
  64. $ds=mysql_fetch_array(safe_query("SELECT topic FROM ".PREFIX."forum_topics WHERE topicID='$topicID'"));
  65. return $ds['topic'];
  66. }
  67. }
  68.  
  69. function mr_title_article($input) {
  70. if(isset($input['articlesID'])) {
  71. $articlesID = $input['articlesID'];
  72. $ds=mysql_fetch_array(safe_query("SELECT title FROM ".PREFIX."articles WHERE articlesID='$articlesID'"));
  73. return $ds['title'];
  74. }
  75. }
  76.  
  77.  
  78.  
  79. function mr_title_galeria($input) {
  80. if(isset($input['picID'])) {
  81. $picID = $input['picID'];
  82. $ds=mysql_fetch_array(safe_query("SELECT name FROM ".PREFIX."gallery_pictures WHERE picID='$picID'"));
  83. return $ds['name'];
  84. }
  85. }
  86.  
  87. function mr_title_profile($input) {
  88. if(isset($input['id'])) {
  89. return getnickname($input['id']);
  90. }
  91. }
  92.  
  93. $mod_titles = array(
  94. 'news_comments'=>"mr_title_news",
  95. 'forum_topic'=>"mr_title_topic",
  96. 'profile'=>"mr_title_profile",
  97. 'artykuly'=>"mr_title_article",
  98. 'galeria'=>"mr_title_galeria",
  99. );
  100.  
  101. $req_uri = explode(_MODRWRT_SEP_,$_SERVER['REQUEST_URI']);
  102. $req_path = explode(DIRECTORY_SEPARATOR,dirname(__FILE__));
  103.  
  104. foreach($req_uri as $parameter) {
  105. if(empty($parameter) || in_array($parameter,$req_path)) {
  106. array_shift($req_uri);
  107. }
  108. else break;
  109. }
  110. $count = count($req_uri);
  111.  
  112. if($count && substr($req_uri[0],0,9) != "index.php") {
  113.  
  114. if(empty($req_uri[$count-1])) array_pop($req_uri);
  115.  
  116. $site = array_shift($req_uri);
  117. $_GET['site'] = $site;
  118.  
  119. $i = 0;
  120. while(isset($req_uri[$i])) {
  121. $split = explode("-",$req_uri[$i]);
  122. if(count($split) == 2) {
  123. $_GET[$split[0]] = $split[1];
  124. $_REQUEST[$split[0]] = $split[1];
  125. }
  126. $i++;
  127. }
  128. }
  129.  
  130. function parseUrl($url) {
  131. global $mod_sites, $mod_titles;
  132. $url[0] = substr($url[0],10);
  133. $a_url = explode('&',$url[0]);
  134.  
  135. $site = explode("=",array_shift($a_url));
  136. $site = $site[1];
  137. $ret = $site;
  138.  
  139. $params = array();
  140.  
  141. if(count($a_url)) {
  142. foreach($a_url as $par) {
  143. $split = explode("=",$par);
  144. $ret .= _MODRWRT_SEP_;
  145. if($special) $ret .= $split[1];
  146. else $ret .= $split[0].'-'.$split[1];
  147. $params[$split[0]] = $split[1];
  148. }
  149. }
  150.  
  151. if(isset($mod_titles[$site])) {
  152. $title = $mod_titles[$site]($params);
  153. $addtitle = makeModRwrt($title);
  154. $ret .= _MODRWRT_SEP_.makeModRwrt($addtitle);
  155. }
  156.  
  157. $ret .= _MODRWRT_ADDITIONAL_;
  158.  
  159. return $ret;
  160. }
  161.  
  162.  
  163.  
  164. function out_buffer($buffer) {
  165. return preg_replace_callback('/index\.php\?([^"\']+)/','parseUrl',$buffer);
  166. }
  167.  
  168. ob_start("out_buffer");
  169. }
  170.  
  171. ?>
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.