Ver Mensaje Individual
  #9 (permalink)  
Antiguo 28/02/2010, 18:58
StrikeFreedom
 
Fecha de Ingreso: diciembre-2006
Mensajes: 381
Antigüedad: 17 años, 3 meses
Puntos: 2
Respuesta: ayuda con sentencia rewriteCond y rewriteRule

Cita:
Iniciado por ferny Ver Mensaje
Efectivamente da el error 500, pero en otra sección. En la parte #New profiles URL's, en las dos primeras reglas delante del $4 hay un espacio. Lo he eliminado y ya no da error 500. Por supuesto que descomentando esas dos líneas que mencionabas, tampoco da error...
pues eso ya lo corregi pero nada :(

lo raro es que cuando comento esta linea:

RewriteRule ^(.*)$ seo4smf-redirect.php?b=%1&g=%3 [R=301,L]

ya no sale el error, pero lo veo bien :(

por siacaso tambien pongo el archivo seo4smf-redirect.php


Código PHP:
Ver original
  1. <?php
  2.     require_once('SSI.php');
  3.  
  4.     if (!defined('SMF'))
  5.         die('I can\'t find SMF installed !');
  6.  
  7.     $topic = $_GET['t'];
  8.     $board = $_GET['b'];
  9.     $other = $_GET['o'];
  10.     $user = $_GET['u'];
  11.     $tpage = $_GET['p'];
  12.     $action = $_GET['a'];
  13.     $param = $_GET['param'];
  14.     $genero = $_GET['g'];
  15.  
  16.  
  17.     if (isset($modSettings['seo4smf_split_char']))
  18.         $split_char = $modSettings['seo4smf_split_char'];
  19.     else
  20.         $split_char = "_";
  21.  
  22.     if (empty($topic) && empty($board) && empty($user) && empty($tpage) && empty($action))
  23.     {
  24.         die ('No parameter given !');
  25.     }
  26.     else
  27.     {
  28.  
  29.         if (strpos($topic, '/') !== false) //until now only VisualWarning is adding /
  30.         {
  31.             list($topic, $other) = explode("/", $topic);
  32.         }
  33.  
  34.         list($topic, $trest) = explode('.', $topic);
  35.         list($board, $brest) = explode('.', $board);
  36.  
  37.         if (!empty($action))
  38.         {
  39.  
  40.             $scripturl1 = str_replace('/index.php', '', $scripturl);
  41.  
  42.             $params = $_SERVER['QUERY_STRING'];
  43.             $sizep = strlen($params);
  44.             $pos = strpos($params, ";");
  45.             if ($pos > 0)
  46.             {
  47.                 $params = substr($params, $pos+1, $sizep);
  48.             }
  49.             if ($params == "")
  50.                 $uri = $action.".html";
  51.             else
  52.                 $uri = $action.".html;".$params;
  53.  
  54.             $url = $scripturl1.'/'.$uri;
  55.  
  56.         }
  57.  
  58.         if (!empty($topic))
  59.         {
  60.             $query = db_query("
  61.                 SELECT m.ID_TOPIC, m.subject ,b.ID_BOARD, b.name
  62.                 FROM {$db_prefix}messages AS m, {$db_prefix}boards AS b
  63.                 WHERE m.ID_TOPIC = $topic
  64.                 AND m.ID_BOARD = b.ID_BOARD
  65.                 LIMIT 1", __FILE__, __LINE__);
  66.             $row = mysql_fetch_assoc($query);
  67.             mysql_free_result($query);
  68.  
  69.             $topic_name = remove_signs($row['subject']);
  70.             $topic_name = strtolower(str_replace(" ", $split_char, $topic_name));
  71.  
  72.             $board_name = remove_signs($row['name']);
  73.             $board_name = strtolower(str_replace(" ", $split_char, $board_name));
  74.  
  75.         if (empty($topic_name)) $topic_name="empty";
  76.  
  77.             if (!empty($other))
  78.             {
  79.                 if (is_numeric($trest))
  80.                     $uri = ($modSettings['seo4smf_topic_board'] != 'on'?"$board_name/":'').$topic_name.'-t'.$topic.'.'.$trest.'.html;'.$other;
  81.                 else
  82.                     if (!empty($trest))
  83.                     $uri = ($modSettings['seo4smf_topic_board'] != 'on'?"$board_name/":'').$topic_name.'-t'.$topic.'.0.html;'.$trest.';'.$other;
  84.                 else
  85.                     $uri = ($modSettings['seo4smf_topic_board'] != 'on'?"$board_name/":'').$topic_name.'-t'.$topic.'.0.html;'.$other;
  86.             }
  87.             else
  88.             {
  89.                 if (is_numeric($trest))
  90.                     $uri = ($modSettings['seo4smf_topic_board'] != 'on'?"$board_name/":'').$topic_name.'-t'.$topic.'.'.$trest.'.html';
  91.                 else
  92.                     {
  93.                     if (!empty($trest))
  94.                         $uri = ($modSettings['seo4smf_topic_board'] != 'on'?"$board_name/":'').$topic_name.'-t'.$topic.'.0.html;'.$trest;
  95.                     else
  96.                         $uri = ($modSettings['seo4smf_topic_board'] != 'on'?"$board_name/":'').$topic_name.'-t'.$topic.'.0.html';
  97.                 }
  98.  
  99.             }
  100.             $scripturl1 = str_replace('/index.php', '', $scripturl);
  101.  
  102.             $url = $scripturl1.'/'.$uri;
  103.  
  104.         }
  105.         if (!empty($board))
  106.         {
  107.             if (empty($genero)){
  108.  
  109.  
  110.             $query = db_query("
  111.                 SELECT name FROM {$db_prefix}boards AS b
  112.                 WHERE ID_BOARD = $board
  113.                 LIMIT 1", __FILE__, __LINE__);
  114.  
  115.             $row = mysql_fetch_assoc($query);
  116.             mysql_free_result($query);
  117.             $board_name = remove_signs($row['name']);
  118.             $board_name = strtolower(str_replace(" ", $split_char, $board_name));
  119.  
  120.             $uri = $board_name.'-b'.$board.'.0/';
  121.             $scripturl1 = str_replace("/index.php", "", $scripturl);
  122.  
  123.             $url = $scripturl1.'/'.$uri;
  124.  
  125.             }else{
  126.  
  127.  
  128.             $query2 = db_query("
  129.                 SELECT genero FROM {$db_prefix}generos AS g
  130.                 WHERE ID_GENERO = $genero
  131.                 LIMIT 1", __FILE__, __LINE__);
  132.  
  133.             $row2 = mysql_fetch_assoc($query2);
  134.             mysql_free_result($query2);
  135.             $genero_name = remove_signs($row2['genero']);
  136.             $genero_name = strtolower(str_replace(" ", $split_char, $genero_name));
  137.  
  138.             $uri = $board_name.'-b'.$board.'.0/genero/'.$genero_name.'/';
  139.             $scripturl1 = str_replace("/index.php", "", $scripturl);
  140.  
  141.             $url = $scripturl1.'/'.$uri;
  142.  
  143.  
  144.             }
  145.         }
  146.          /*
  147.          ////genero
  148.         if (!empty($board) && !empty($genero))
  149.         {
  150.             $query = db_query("
  151.                 SELECT name FROM {$db_prefix}boards AS b
  152.                 WHERE ID_BOARD = $board
  153.                 LIMIT 1", __FILE__, __LINE__);
  154.  
  155.             $row = mysql_fetch_assoc($query);
  156.             mysql_free_result($query);
  157.             $board_name = remove_signs($row['name']);
  158.             $board_name = strtolower(str_replace(" ", $split_char, $board_name));
  159.  
  160.  
  161.             $query2 = db_query("
  162.                 SELECT genero FROM {$db_prefix}generos AS g
  163.                 WHERE ID_GENERO = $genero
  164.                 LIMIT 1", __FILE__, __LINE__);
  165.  
  166.             $row2 = mysql_fetch_assoc($query2);
  167.             mysql_free_result($query2);
  168.             $genero_name = remove_signs($row2['genero']);
  169.             $genero_name = strtolower(str_replace(" ", $split_char, $genero_name));
  170.  
  171.             $uri = $board_name.'-b'.$board.'.0/genero/'.$genero_name.'/';
  172.             //$uri = $board_name.'-b'.$board.'.0/';
  173.             $scripturl1 = str_replace("/index.php", "", $scripturl);
  174.  
  175.             $url = $scripturl1.'/'.$uri;
  176.  
  177.         }
  178.         ////genero
  179.         */
  180.         if ((!empty($user)) && empty($action))
  181.         {
  182.  
  183.             $request = db_query("SELECT memberName FROM {$db_prefix}members where ID_MEMBER=".$user." limit 1", __FILE__, __LINE__);
  184.             $name = mysql_fetch_assoc($request);
  185.             mysql_free_result($request);
  186.  
  187.             $scripturl1 = str_replace("/index.php", "", $scripturl);
  188.  
  189.             $uri = "profiles/".$name['memberName']."-u".$user.".html";
  190.             if (!empty($param))
  191.             {
  192.                 $param = str_replace("=", ",", $param);
  193.                 $uri .= ";".$param;
  194.             }
  195.  
  196.             $url = $scripturl1.'/'.$uri;
  197.         }
  198.  
  199.         if (!empty($tpage))
  200.         {
  201.             $request = db_query("SELECT subject FROM {$db_prefix}tp_articles where id=".$tpage." limit 1", __FILE__, __LINE__);
  202.             $row = mysql_fetch_assoc($request);
  203.             mysql_free_result($request);
  204.  
  205.             $scripturl1 = str_replace("/index.php", "", $scripturl);
  206.  
  207.             $page_name = remove_signs($row['subject']);
  208.             $page_name = strtolower(str_replace(" ", $split_char, $page_name));
  209.  
  210.             $uri = $page_name."-p".$tpage.".html";
  211.             $url = $scripturl1.'/'.$uri;
  212.         }
  213.  
  214.     }
  215.  
  216.     if (!empty($url))
  217.     {
  218.         header('HTTP/1.1 301 Moved Permanently');
  219.         header('Location: '.$url);
  220.         exit;
  221.     }
  222.     else
  223.     {
  224.         echo 'Is something wrong here ... !';
  225.     }
  226.  
  227. ?>